KR100437180B1 - Apparatus and Method for parsing the SIP message and producing method there of - Google Patents

Apparatus and Method for parsing the SIP message and producing method there of Download PDF

Info

Publication number
KR100437180B1
KR100437180B1 KR10-2001-0085301A KR20010085301A KR100437180B1 KR 100437180 B1 KR100437180 B1 KR 100437180B1 KR 20010085301 A KR20010085301 A KR 20010085301A KR 100437180 B1 KR100437180 B1 KR 100437180B1
Authority
KR
South Korea
Prior art keywords
header field
parsing
sip
message
field
Prior art date
Application number
KR10-2001-0085301A
Other languages
Korean (ko)
Other versions
KR20030054869A (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 KR10-2001-0085301A priority Critical patent/KR100437180B1/en
Publication of KR20030054869A publication Critical patent/KR20030054869A/en
Application granted granted Critical
Publication of KR100437180B1 publication Critical patent/KR100437180B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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]

Abstract

SIP(Session Initiation Protocol)메시지의 파싱처리시 메모리 자원을 효율적으로 운용할 수 있도록 하는 것과 아울러 이를 이용해 SIP메시지 생성시 인코딩 처리 성능을 향상시킬 수 있도록 하는 데 그 목적이 있다.The purpose is to enable efficient use of memory resources when parsing SIP (Session Initiation Protocol) messages, and to improve encoding performance when generating SIP messages.

이러한 목적을 달성하기 위하여 본 발명은 수신된 SIP메시지에서 헤더 필드를 분리하여 저장하고, 저장된 위치를 지시하는 포인터 정보를 별도의 저장영역에 저장한 후, 이 포인터 정보를 이용해 외부로부터 파싱 요청된 특정 헤더 필드를 파싱하도록 하는데, 이 때 파싱된 결과인 SIP구성 요소들이 동일한 주소의 저장영역을 공유할 수 있도록 파싱 위치에 널 스트링(null string)을 삽입한다.In order to achieve the above object, the present invention separates and stores a header field from a received SIP message, stores pointer information indicating a stored location in a separate storage area, and then parses the request from the outside using this pointer information. It parses the header field, inserting a null string at the parsing location so that the parsed SIP components can share the same address storage.

Description

에스아이피 메시지 파싱 장치, 파싱 방법 및 그 생성 방법{Apparatus and Method for parsing the SIP message and producing method there of}Apparatus and Method for parsing the SIP message and producing method there of}

본 발명은 에스아이피 메시지의 파싱 장치 및 방법과 파싱된 결과의 수정 유무에 따라 에스아이피 메시지의 인코딩 여부를 결정하는 에스아이피 메시지 생성 방법에 관한 것이다.The present invention relates to an apparatus and method for parsing an SIP message and a method for generating an SIP message for determining whether to encode an SIP message according to whether a parsed result is modified.

최근 가정용 PC와 초고속 통신망의 보급으로 인해 인터넷을 이용한 전화에 대한 관심이 높아지고 있으며, 이러한 인터넷 전화를 가능하게 하는 프로토콜로는 H.323, SIP등이 있다.Recently, due to the spread of home PC and high-speed communication network, interest in the telephone using the Internet is increasing, and protocols for enabling such telephones include H.323 and SIP.

특히, SIP(Session Initiation Protocol)는 HTTP(Hypertext TransferProtocol)와 같은 텍스트 기반 프로토콜로서, 현재 인터넷 전화를 비롯한 다양한 분야에서 콜 셋 업(Call Set Up)을 위해 사용되고 있으며, E-mail과 유사한 주소체계 형태의 SIP ID(Identifier)를 이용하여 언제, 어디서나 음성 통화 및 E-mail 서비스가 가능하다.In particular, Session Initiation Protocol (SIP) is a text-based protocol such as Hypertext Transfer Protocol (HTTP), and is currently used for call set up in various fields including Internet telephony. Voice call and E-mail service are available anytime, anywhere using SIP ID (Identifier).

이러한 SIP 기능들을 수행하는 SIP 네트워크를 도 1을 참조하여 설명한다.A SIP network that performs these SIP functions will be described with reference to FIG. 1.

도 1은 일반적인 SIP네트워크를 개략적으로 도시한 도면이다.1 is a diagram schematically illustrating a general SIP network.

여기서 부호 10은 SIP 프락시 서버(Proxy Server)로서 IP네트워크에서 라우터(Router)의 역할을 하는 서버로서, 전화 통화를 할 때 SIP메시지들을 수신측과 송신측에 있는 SIP단말기로 상호 전달하는 역할을 하고, 부호 11은 디렉토리 서버로서 해당 SIP사용자의 주소록 정보가 저장된 서버이고, 부호 12는 레지스트라(Registrar)로서 SIP네트워크상에서 해당 SIP사용자의 위치 즉 해당 SIP사용자가 전화를 받을 SIP전화기의 위치를 등록하는 서버이고, 부호 13, 14, 15는 SIP전화기이다.Here, reference numeral 10 denotes a SIP proxy server, which serves as a router in the IP network, and delivers SIP messages to SIP terminals at the receiving side and the transmitting side when making a telephone call. , 11 is a directory server that stores address information of the SIP user, and 12 is a registrar, which registers the location of the SIP user on the SIP network, that is, the location of the SIP telephone to which the SIP user will receive calls. And reference numerals 13, 14 and 15 denote SIP telephones.

이렇게 구성되는 SIP네트워크상에서, 부호 14의 SIP전화기를 통해 SIP전화 서비스를 이용하고 있는 사용자가 부호 15의 SIP전화기로 이동하게 되면, 사용자는 먼저 부호 15의 SIP단말기를 통해 자신의 위치를 알리는 SIP메시지를 레지스트라(13)로 전송하고, 레지스트라(13)는 전송된 SIP메시지를 이용해 디렉토리 서버(11)에 사용자의 위치를 등록한다.In the SIP network configured as described above, when a user using a SIP telephone service through a SIP telephone of code 14 moves to a SIP telephone of code 15, the user first announces his or her location via a SIP terminal of code 15 Is transmitted to the registrar 13, and the registrar 13 registers the user's location in the directory server 11 using the transmitted SIP message.

그런 다음 상대방이 부호 13의 SIP전화기를 통해 상기 사용자에게 전화를 걸면, SIP프락시 서버(Proxy Server)는 상대방의 SIP 메시지를 새로운 사용자의 위치즉 부호 15의 SIP전화기로 전달해 줌으로 사용자는 이동된 위치에서 자신에게 걸려온 SIP메시지를 받을 수가 있게 된다.Then, when the other party calls the user through the SIP telephone of 13, the SIP Proxy Server delivers the SIP message of the other party to the new user's position, that is, the SIP telephone of 15, and the user is moved. Will be able to receive SIP messages from you.

이러한 SIP에 사용되는 SIP메시지는 텍스트 형태로써 RFC(Request for Comments)822에서 제안된 메시지 구조를 따르며 일반적으로 스타트 라인(Start line), 헤더(Header), 바디(Body) 필드로 구분되는데, 예를 들면 다음과 같은 구조로 되어 있다.SIP messages used in SIP follow the message structure proposed in Request for Comments (RFC) 822 in text form, and are generally divided into start line, header, and body fields. For example, the structure is as follows.

1. 스타트 라인(Start line) 필드.1. Start line field.

INVITE sip : watson@boston.bell-tel.com SIP/2.0INVITE sip: watson@boston.bell-tel.com SIP / 2.0

2. 헤더(Header)필드2. Header field

Via:SIP/2.0/UDP sip.ieee.org ; branch=1Via: SIP / 2.0 / UDP sip.ieee.org; branch = 1

From:A.Bell<sip:a.g.bell@bell-tel.com>From: A.Bell <sip: a.g.bell@bell-tel.com>

To:T.Watson<sip:waston@bell-tel.com>To: T.Watson <sip: waston@bell-tel.com>

CSeq:1 INVITECSeq: 1 INVITE

Subject:Mr.Waston,come here.Subject: Mr.Waston, come here.

Content-Type:application/sdpContent-Type: application / sdp

Content-Length:50Content-Length: 50

3. 바디(Body)필드.3. Body field.

v=0v = 0

s=Let's talks = Let's talk

c=IN IP4north.east.isi.educ = IN IP4north.east.isi.edu

한편 이러한 SIP메시지들을 파싱하는 일반적인 SIP메시지 파싱은 텍스트 형태의 SIP메시지를 받아서 전체를 동시에 파싱하고, 파싱된 결과인 SIP구성요소마다 주소가 다른 메모리를 할당하여 저장한다.On the other hand, the general SIP message parsing that parses these SIP messages receives the SIP message in the form of text and parses the whole at the same time, and allocates and stores the memory having different addresses for each SIP component which is the result of parsing.

예를 들면, 전술한 "Via"헤더를 파싱하면 그 결과로 프로토콜 네임인 "SIP", 프로토콜 버전인"2.0", 트랜스포트인 "UDP", 전송 호스트인"sip.ieee.org"이 SIP메시지에서 추출되고, 추출된 "SIP","2.0","UDP","sip.ieee.org"마다 주소가 다른 메모리를 할당하여 이들을 저장하는데, 이 때 상기와 같이 파싱하여 추출된 SIP","UDP"등을 여기서 "SIP구성요소"라고 한다.For example, parsing the "Via" header described above results in a SIP message with protocol name "SIP", protocol version "2.0", transport "UDP", and transport host "sip.ieee.org". Are extracted from "SIP", "2.0", "UDP", and "sip.ieee.org", and allocates the memory having different addresses, and stores them as above. UDP "and the like are referred to herein as" SIP components ".

하지만 이러한 메시지 파싱방법은 상기와 같이, "SIP구성요소"마다 메모리를 할당하고 해지(release)함으로써 메모리 프로세싱 성능이 저하되고, 특히 파싱할 필요가 없는 헤더 필드까지 파싱을 하고 파싱된 결과인 SIP구성요소마다 메모리를 할당함으로 불필요하게 메모리 자원을 낭비한다.However, such a message parsing method allocates and releases memory for each " SIP component " as described above, thereby degrading memory processing performance, and in particular, SIP configuration, which is a result of parsing and parsing header fields that need not be parsed. Allocating memory per element wastes memory resources unnecessarily.

또한 많은 양의 SIP메시지를 처리하는 SIP프락시 서버(Proxy Server)가 헤더 필드를 수정하여 이를 SIP메시지에 인코딩 시킬 경우에, 일반적으로 수정할 헤더 필드를 파싱하여 해당 수정사항을 수정한 후, 수정된 헤더를 인코딩하여 SIP메시지에 포함시키는데, 이 때 수정된 헤더 필드뿐만 아니라 수정되지 않은 헤더 필드까지 인코딩시키기 때문에 이로 인해 메시지의 인코딩 처리(Processing)성능을 저하시키는 문제점이 있어 왔다.Also, when a SIP proxy server that processes a large amount of SIP messages modifies the header field and encodes it into a SIP message, the modified header is generally parsed by modifying the modification after parsing the header field. Is encoded and included in the SIP message. At this time, since not only the modified header field but also the unmodified header field are encoded, this causes a problem of degrading the encoding processing performance of the message.

이에 본 발명은 상기한 문제점을 해소시키기 위한 것으로, 메모리 자원을 효율적으로 운용할 수 있도록 함과 아울러 메시지 인코딩 처리 성능을 향상시킬 수 있도록 하는 에스아이피 파싱 장치 및 방법과 그 생성방법을 제공하는데 목적이 있다.Accordingly, an object of the present invention is to solve the above problems, and to provide an SIP parsing apparatus, a method, and a method for generating the same, capable of efficiently operating memory resources and improving message encoding processing performance. have.

상기 목적을 달성하기 위한 본 발명의 에스아이피 메시지 파싱 장치 및 방법은, SIP메시지에서 분리된 헤더 필드를 저장하고, 저장된 헤더 필드의 위치를 별도의 저장영역에 저장한 후, 이 위치 정보를 이용해 외부 쓰레드의 파싱 요청에 따라 특정 헤더 필드를 파싱 하고, 이 때 파싱된 결과인 SIP구성 요소들이 동일한 주소의 저장영역을 공유할 수 있도록 파싱 위치에 널 스트링(null string)을 삽입하도록 하는 것을 특징으로 한다.In order to achieve the above object, the apparatus and method for parsing SIP message of the present invention stores a header field separated from a SIP message, stores the location of the stored header field in a separate storage area, and then uses the location information. Parse specific header fields according to a thread's parsing request, and insert a null string at the parsing location so that the parsed SIP components can share the storage of the same address. .

또한 다른 본 발명인 에스아이피 메시지 생성 방법은, SIP메시지에서 분리된 헤더 필드를 저장하고, 저장된 헤더 필드의 시작 위치와 크기를 포인터로 지정하여 이를 별도의 저장 영역에 저장한 후, 이를 이용해 외부 쓰레드의 인코딩 요청시 인코딩할 헤더 필드의 저장 위치를 파악하고 인코딩할 헤더 필드가 수정된 헤드 필드인가를 판단하여 판단 결과, 수정된 헤드 필드일 경우에는 상기 수정된 헤더 필드를 SIP메시지에 인코딩하고 수정되지 않은 헤더 필드일 경우에는 저장된 헤더 필드를 SIP 메시지에 복사하도록 하는 것을 특징으로 한다.In another embodiment of the present invention, a method for generating an SIP message may include storing a header field separated from a SIP message, designating a start position and a size of the stored header field as a pointer, storing the header field in a separate storage area, and then using the same as an external thread. When the encoding request is made, the storage location of the header field to be encoded is determined, and it is determined whether the header field to be encoded is a modified head field. As a result of the determination, the modified header field is encoded into the SIP message and not modified. In the case of a header field, the stored header field is copied to a SIP message.

도 1은 일반적인 SIP 네트워크를 도시한 도면이고,1 is a diagram illustrating a general SIP network,

도 2는 본 발명인 SIP 메시지 파싱 장치를 도시한 도면이고,2 is a diagram illustrating an apparatus for parsing a SIP message according to the present invention;

도 3과 도 4는 본 발명에 적용되는 포인터 정보를 도시한 도면이고,3 and 4 illustrate pointer information applied to the present invention.

도 5는 다른 본 발명인 SIP 메시지 파싱 방법을 도시한 도면이고,5 is a diagram illustrating another SIP message parsing method according to the present invention;

도 6과 도 7은 또 다른 본 발명인 SIP 메시지 생성 방법을 도시한 도면이다.6 and 7 illustrate another method for generating a SIP message according to the present invention.

이하, 첨부된 도면을 참조하여 본 발명을 살펴보면 다음과 같다.Hereinafter, the present invention will be described with reference to the accompanying drawings.

먼저 본 발명의 에스아이피 메시지 파싱 장치는 도 2에 도시된 바와 같이, SIP메시지에서 헤더 필드를 분리하여 분리된 헤더 필드의 시작 위치를 포인터로 지정하는 전처리기(20)와, 상기 포인터 정보를 이용해 외부 쓰레드의 파싱 요청에 따라 특정 헤더 필드를 파싱하는 파서부(21)와, 상기 파서부(21)에서 파싱한 결과와 상기 전처리기(20)에서 분리한 헤더 필드 및 포인터 정보를 저장하는 데이터 베이스(22)와, 상기 파싱 요청을 하는 외부 쓰레드와 상기 데이터 베이스(22)를 인터페이스하는 API처리부(23)로 이루어진다.First, the SIP message parsing apparatus of the present invention uses a preprocessor 20 that separates a header field from a SIP message and designates a start position of the separated header field as a pointer, and the pointer information. A parser 21 for parsing a specific header field according to a parsing request of an external thread, a database for storing the result parsed by the parser 21 and the header field and pointer information separated by the preprocessor 20 And an API processor 23 for interfacing the database 22 with an external thread that makes the parsing request.

그리고 상기 데이터 베이스(23)는 상기 전처리기(20)에서 분리된 스타트 라인/헤더/바디 필드를 저장하는 메시지 저장부(24)와, 이 메시지 저장부(24)에 저장된 각 필드의 위치를 나타내는 포인터(pointer) 정보가 저장된 인덱스 어레이 저장부(25)와, 상기 파서부(21)에서 파싱된 결과를 구조체 형태(data structure)로 저장하는 구조체 저장부(26)로 이루어진다.The database 23 indicates a message storage unit 24 for storing start line / header / body fields separated from the preprocessor 20, and indicates the position of each field stored in the message storage unit 24. An index array storage unit 25 that stores pointer information and a structure storage unit 26 that stores a result parsed by the parser unit 21 in a data structure.

이렇게 이루어지는 SIP메시지 파싱 장치는, 먼저 상기 전처리기(20)가 SIP메시지를 스타트 라인/헤더/바디 필드로 분리하여 이를 데이터 베이스(22)의 메시지 저장부(24)에 저장한다.In this SIP message parsing apparatus, the preprocessor 20 first divides the SIP message into a start line / header / body field and stores it in the message storage unit 24 of the database 22.

그러면 상기 전처리기(20)는 상기 메시지 저장부(24)에 저장된 각 필드의 위치와 크기를 포인터로 지정하여 지정된 포인터 정보를 인덱스 어레이 저장부(25)에 저장하게 된다.Then, the preprocessor 20 stores the designated pointer information in the index array storage 25 by designating the location and size of each field stored in the message storage 24 as a pointer.

예를 들면 도 3에 도시된 바와 같이, "INVITE sip:jeongwoo@lge.com SIP/2.0"의 스타트 라인 필드정보가 저장된 위치는 스타트 라인 포인터(start line pointer)를, "Via"와 같은 헤더 필드가 저장된 위치는 헤더 포인터(header pointer)를, 그리고 v=0과 같은 바디 필드 정보가 저장된 위치는 바디 포인터(Bodypointer)를 이용하여 상기 각 필드가 저장된 위치를 알 수 있도록 한다.For example, as shown in FIG. 3, the location where the start line field information of "INVITE sip: jeongwoo@lge.com SIP / 2.0" is stored is a start line pointer and a header field such as "Via". The location where is stored is a header pointer, and the location where body field information, such as v = 0, is stored using a body pointer so that each field is stored.

특히, 동일한 헤더 필드가 SIP메시지에 여러 개가 있을 수 있기 때문에 각각의 헤더 필드가 저장된 위치를 별도의 헤더 포인터(header pointer)를 이용해 나타내는데 즉, 여기에서는 동일한 헤더 필드인 두개의 "Via"필드가 저장된 위치를 링크트 리스트(linked list)로 구분해 주며, 해당 헤더 포인터의 첫 번째 노드는"Via:SIP/2.0/UDP lg-proxy.com"이 저장된 위치를 나타내고, 두 번째 노드는 "Via:SIP/2.0/UDP ns.lge.com"이 저장된 위치를 나타낸다.In particular, because the same header field may exist in the SIP message, each header field is stored using a separate header pointer. In this case, two "Via" fields, which are identical header fields, are stored. The location is divided into a linked list. The first node of the header pointer indicates the location where "Via: SIP / 2.0 / UDP lg-proxy.com" is stored, and the second node is "Via: SIP." /2.0/UDP ns.lge.com ".

한편 상기 전처리기(20)가 각 필드의 위치를 포인터로 나타내어 그 정보들을 데이터 베이스(22)내의 인덱스 어레이 저장부(25)에 저장해 둔 상태에서, 외부 쓰레드로부터 특정 헤더 필드를 파싱하여 그 결과를 전송해 줄 것을 요청하는 API호출 데이터가 입력되면, 상기 API처리부(23)는 상기 API호출 데이터에 따라 파싱 요청된 특정 헤더 필드가 이미 파싱이 되어 있는가를 조사한다.On the other hand, while the preprocessor 20 indicates the location of each field as a pointer and stores the information in the index array storage unit 25 in the database 22, a specific header field is parsed from an external thread and the result is obtained. When the API call data for requesting transmission is input, the API processing unit 23 checks whether a specific header field parsed according to the API call data has already been parsed.

상기 조사 결과 파싱이 되어 있지 않았을 경우에는, 상기 특정 헤더 필드의 위치를 인덱스 어레이 저장부(25)의 포인터 정보를 이용하여 파악한 후, 상기 특정 헤더 필드의 크기에 해당하는 저장영역을 메시지 저장부(24)에서 일부 할당받아 할당받은 저장영역(copied momery)에 상기 특정 헤더 필드를 복사한다.When the parsing result is not parsed, the location of the specific header field is determined by using the pointer information of the index array storage unit 25, and then the storage area corresponding to the size of the specific header field is stored. In step 24, the specific header field is copied to the allocated copied momery.

그런 다음 상기 API처리부(23)가 상기 특정 헤더 필드가 상기 메시지 저장부(24)에 복사되어 있다는 정보를 파서부(21)에 전송하면, 파서부(21)는 상기 해당 헤더 필드의 복사본이 저장되어 있는 저장 영역(copied memory)에서 파싱 동작을 수행하게 된다.Then, when the API processing unit 23 transmits information to the parser unit 21 that the specific header field is copied to the message storage unit 24, the parser unit 21 stores a copy of the corresponding header field. The parsing operation is performed in a copied memory.

상기 파싱 동작은 상기 특정 헤더 필드에 포함된 데이터 즉, SIP구성 요소들을 토큰(token)을 이용해 분리하는 동작으로 수행되는데, 이 때 토큰이 있는 위치 다음에 널 스트링(null string)을 삽입하여 동일한 주소의 저장 영역을 파싱된 여러 개의 SIP구성 요소들이 공유하도록 한다.The parsing operation is performed by separating the data included in the specific header field, that is, SIP components by using a token, wherein a null string is inserted after the position of the token to insert the same address. Allows multiple parsed SIP components to share their storage area.

예를 들면, 도 4에 도시된 바와 같이, 상기 해당 헤더 필드에 포함된 데이터가 첫 번째 노드가 가리키는 "Via:SIP/2.0/UDP 1g-proxy.lge.com"일 경우, 이를 복사본 메모리(copied memory)에서 파싱하고 나면, SIP구성요소들이 토큰으로 분리가 된 "Via\SIP\2.0\UDP\lg-proxy.lg.com"이 형성되는데, 이 때 각각의 토큰(\)다음에 널 스트링(0)을 삽입하여 "Via","SIP"...와 같은 SIP구성요소들이 동일한 주소의 저장 영역을 공유할 수 있도록 함으로 빈번한 저장영역의 할당/해지 작업으로 인하여 생기는 처리 성능 저하를 방지할 수가 있게 된다.For example, as illustrated in FIG. 4, when the data included in the corresponding header field is "Via: SIP / 2.0 / UDP 1g-proxy.lge.com" indicated by the first node, the data is copied into a copy memory (copied). After parsing in memory, the SIP components are separated into tokens, "Via\SIP\2.0\UDP\lg-proxy.lg.com", which is followed by a null string () after each token. By inserting 0), SIP components such as "Via", "SIP" ... can share the storage address of the same address, so that processing performance deterioration caused by frequent storage allocation / release operations cannot be prevented. Will be.

한편, 첫 번째 노드의 포인터가 가리키는 "Via:SIP/2.0/UDP lg-proxy.lge.com"을 파싱하면 다음에는 두 번째 노드의 포인터가 가리키는 "Via:SIP/2.0/UDP/ ns.lge.com을 전술한 방법과 같이 파싱하는데 상기 두 노드는 링크트 리스트(linked list)로 링크되어 있다.On the other hand, parsing "Via: SIP / 2.0 / UDP lg-proxy.lge.com" pointed to by the first node's pointer, then "Via: SIP / 2.0 / UDP / ns.lge." Pointed to by the second node's pointer. com is parsed in the same manner as described above, where the two nodes are linked in a linked list.

전술한 파싱 동작이 종료되면, 상기 파서부(21)는 파싱된 결과인 SIP구성요소들을 별도의 저장영역인 구조체(Data structure) 저장부(26)에 저장한 후, 이를 구조체 형태로 API처리부(23)를 통해 외부 즉, 운용체제의 응용 쓰레드등으로 리턴(return)해 주게 된다.When the above parsing operation is completed, the parser 21 stores the SIP components as a result of parsing in the data structure storage 26, which is a separate storage area, and then stores the SIP components in the form of a structure. 23) returns to the external, that is, application thread of the operating system.

다음에는 다른 본 발명인 에스아이피 메시지 파싱 방법을 도 5를 참조하여설명한다.Next, another method of parsing SIP message according to the present invention will be described with reference to FIG. 5.

상기 도 5에 도시된 바와 같이, 본 발명의 에스 아이피 메시지 파싱 방법은 SIP메시지를 수신하는 제 51 단계(S51)와, 수신된 SIP메시지를 스타트라인/헤더/바디 필드로 분리하는 제 52 단계(S52)와, 분리된 각 필드와 그 필드가 저장된 위치를 저장하는 제 53단계(S53)와, 외부 쓰레드 에서 특정 헤더 필드의 파싱 결과를 요청하는 제 54 단계(S54)와, 파싱 요청된 특정 헤더 필드가 저장된 위치를 원본 메모리에서 파악하는 제 55 단계(S55)와, 요청된 특정 헤더필드의 파싱이 이미 이루어졌는가를 판단하는 제 56 단계(S56)와, 상기 특정 헤더 필드를 복사본 메모리에 복사하여 파싱하는 제 57 단계(S57)와, 상기 해당 헤더 필드를 파싱하여 추출한 SIP구성요소들을 구조체 메모리의 해당 저장 영역에 같이 저장하는 제 58 단계(S58)와, 저장된 SIP구성요소들을 구조체 형태로 외부 쓰레드에 리턴하는 제 59 단계(S59)로 이루어진다.As shown in FIG. 5, the SIP message parsing method of the present invention includes a 51 st step of receiving a SIP message (S51), and a 52 th step of separating the received SIP message into a start line / header / body field ( S52), a 53rd step (S53) of storing each separated field and the location where the field is stored; a 54th step (S54) of requesting a parsing result of a specific header field from an external thread, and a specific header requested to be parsed. A 55th step (S55) of identifying the location where the field is stored in the original memory; a 56th step (S56) of determining whether the requested specific header field has already been parsed; and copying the specific header field to the copy memory. Parsing step 57 (S57), parsing the header field to extract the extracted SIP components in the corresponding storage area of the structure memory (S58), and stored SIP components in the form of a structure It comprises a first step 59 (S59) to return to the thread.

이렇게 이루어지는 SIP메시지 파싱 방법은, 먼저 SIP메시지를 수신하여(S51) 수신된 SIP메시지를 스타트라인/헤더/ 바디 필드로 분리한다(S52).In the SIP message parsing method, the SIP message is first received (S51) and the received SIP message is separated into a start line / header / body field (S52).

그런 다음 분리된 각각의 필드를 저장하고, 저장된 각 필드의 위치를 나타내는 포인터 정보를 별도의 저장영역에 저장한다(S53).Then, each of the separated fields is stored, and pointer information indicating the location of each stored field is stored in a separate storage area (S53).

이런 상태에서 외부 예를 들면, 운용 체제의 응용 쓰레드로부터 특정 헤더 필드의 파싱 결과를 요청하는 데이터가 입력되면(S54), 상기 포인터 정보를 이용해 특정 헤더 필드가 저장된 위치를 파악한 후(S55), 상기 특정 헤더 필드의 파싱이 이미 이루어졌는가를 판단하는데, 이러한 판단은 특정 헤더 필드에 포함된플랙(flag)정보를 이용해 판단한다.In this state, for example, when data for requesting a parsing result of a specific header field is input from an application thread of an operating system (S54), the location of the specific header field is determined using the pointer information (S55). It is determined whether parsing of a specific header field has already been made, and this determination is determined using flag information included in the specific header field.

상기 판단 결과, 특정헤더 필드의 파싱이 이미 이루어진 경우에는 파싱된 결과를 구조체 형태로 외부 쓰레드에 리턴(return)해 주고(S59), 반면에 파싱이 이루어지지 않은 경우에는 특정 헤더 필드를 원본 메모리에서 추출하여 이를 복사본 메모리에 복사한 후 파싱한다(S57).As a result of the determination, if parsing of a specific header field has already been made, the parsed result is returned to an external thread in the form of a structure (S59). On the other hand, if parsing is not performed, a specific header field is returned from the original memory. Extract it, copy it to copy memory, and parse it (S57).

즉, 상기 특정 헤더 필드를 원본메모리에서 추출하고 이를 복사본 메모리에 복사한 후, 복사된 특정 헤더 필드를 파싱하는데, 이 때 상기 특정 헤더 필드를 파싱하여 생성된 결과인 SIP구성요소들이 동일한 주소의 저장 영역을 공유할 수 있도록 각 SIP구성요소를 분리하는 토큰 다음에 널 스트링을 삽입하도록 한다.That is, the specific header field is extracted from the original memory and copied to the copy memory, and then the copied specific header field is parsed. At this time, the SIP components, which are the result of parsing the specific header field, are stored in the same address. The null string should be inserted after the token separating each SIP component so that the realm can be shared.

다음 상기 특정 헤더 필드를 파싱하고 나면, 파싱된 결과인 SIP구성요소들을 구조체 메모리에 저장하고, 저장된 SIP구성요소들을 구조체(Data Structure) 형태로 외부 쓰레드에 리턴해 준다.After parsing the specific header field, the parsed SIP components are stored in the structure memory, and the stored SIP components are returned to the external thread in the form of a data structure.

예를 들면, 특정 헤더가 "Via:SIP/2.0/UDP lg-proxy.lge.com"이고, 파싱한 결과가 "Via\0SIP\02.0\0UDP\0lg-proxy.lg.com\0"이며, 그 구조체를 C언어를 이용하여 다음과 같이 정의한다면,For example, the specific header is "Via: SIP / 2.0 / UDP lg-proxy.lge.com", and the parsing result is "Via\0SIP\02.0\0UDP\0lg-proxy.lg.com\0". If you define the structure using C language as follows:

typedef strut_ Via {typedef strut_ Via {

strut_Via*next;strut_Via * next;

Bool blsModified;Bool bls Modified;

Bool blntoSignature;Bool blntoSignature;

char*szOrgMsg;/*pointer to the original header message*/char * szOrgMsg; / * pointer to the original header message * /

int nOrgLen;/*length of original header message */int nOrgLen; / * length of original header message * /

char*szProtocolName;char * szProtocolName;

char*szProtocolVersion;char * szProtocolVersion;

char*szTransport;char * szTransport;

char*szHost;..................char*szComment;}char * szHost; ........ char * szComment;}

SIPPAR_Via_t;.SIPPAR_Via_t ;.

이 때, "szProtocolName"에 "SIP\0"을,"szProtocolVersion"에는 "2.0\0"을, 그리고 "*szTransport"에는 "UDP\0", "szHost"에는 "lg-proxy.lg.com\0"에 해당하는 character 스트링(string)값을 각기 기록하여 이렇게 기록된 구조체를 외부 즉 운용 체제의 응용 쓰레드로 리턴해 주게 된다.At this time, "szProtocolName" is "SIP \ 0", "szProtocolVersion" is "2.0 \ 0", "* szTransport" is "UDP \ 0", and "szHost" is "lg-proxy.lg.com" Each character string value corresponding to 0 "is recorded and returned to the external or operating system application thread.

다음으로는 이러한 파싱 방법을 이용한 또 다른 본 발명인 에스아이피 메시지 인코딩 방법을 도 6과 도 7을 참조하여 설명한다.Next, another exemplary SIP message encoding method using the parsing method will be described with reference to FIGS. 6 and 7.

상기 도 6은 특정 헤더를 수정하여 자신이 수정된 헤더임을 나타내는 플랙(flag)을 상기 특정헤더에 인코딩하는 단계를 도시한 도면이고, 도 7은 상기 플랙(flag) 정보를 이용해 특정 헤더 필드를 SIP메시지에 인코딩하는 단계를 도시한 도면이다.FIG. 6 is a diagram illustrating a step of encoding a flag in the specific header indicating that the header is a modified header by modifying a specific header, and FIG. 7 illustrates a SIP header of a specific header field using the flag information. A diagram illustrating the steps of encoding into a message.

먼저 상기 도 6을 참조하여 특정 헤더 필드의 수정 단계를 설명한다.First, a modification of a specific header field will be described with reference to FIG. 6.

상기 도 6에 도시된 바와 같이, 우선 SIP메시지를 수신하여(S60) 수신된 SIP 메시지를 스타트라인/헤더/바디 필드로 분리한 다음(S61), 분리된 각 필드를 저장하고, 저장된 위치를 나타내는 포인터 정보와 그 크기를 저장한다(S62).As shown in FIG. 6, first, a SIP message is received (S60), and the received SIP message is divided into a start line / header / body field (S61), and each of the separated fields is stored and indicates a stored location. The pointer information and its size are stored (S62).

이런 상태에서 외부 쓰레드로부터 특정헤더를 수정하라는 요청이 입력되면(S63), 상기 포인터 정보를 이용해 상기 특정 헤더 필드가 저장된 위치를 파악한다(S64).In this state, when a request for modifying a specific header is input from an external thread (S63), the location of the specific header field is determined using the pointer information (S64).

그런 다음 특정 헤더 필드가 이미 파싱이 이루어졌는가를 판단하여(S65) 판단결과, 이미 파싱이 이루어진 경우에는 파싱된 결과가 저장된 구조체 메모리에서 특정 헤더 필드를 수정하는데(S67), 이 때 파싱된 결과인 SIP구성요소들이 동일 주소의 메모리를 공유하고 저장 상태를 해지시켜 각각의 구성요소마다 별도로 저장영역을 할당한 후, 할당된 해당 저장 영역에서 수정이 이루어지도록 한다.Then, it is determined whether the specific header field has already been parsed (S65), and when the parsing has already been performed, the parsed result is modified in the stored structure memory (S67). SIP components share the memory of the same address and release the storage state to allocate storage space separately for each component, and then make modifications in the allocated storage space.

예를 들면, "typedef strut_ Via {For example, typedef strut_ Via {

strut_Via*next;strut_Via * next;

Bool blsModified;Bool bls Modified;

Bool blntoSignature;Bool blntoSignature;

char*szOrgMsg;/*pointer to the original header message*/char * szOrgMsg; / * pointer to the original header message * /

int nOrgLen;/*length of original header message */int nOrgLen; / * length of original header message * /

char*szProtocolName;char * szProtocolName;

char*szProtocolVersion;char * szProtocolVersion;

char*szTransport;char * szTransport;

char*szHost;..................char*szComment;}"로 정의된 구조체에 szProtocolName"에는 "SIP\0"을,"szProtocolVersion"에는 "2.0\0"을, 그리고 "*szTransport"는 "UDP\0", "szHost"에는 "lg-proxy.lg.com\0"의 파싱 결과가 해당 character 스트링 값으로 기록되어 있고, szTransport의 "UDP\0"을 "SCTP\0"으로 수정하고자 할 경우에, 3비트 크기인 "UDP"의 위치에 4비트의 크기를 가진 "SCTP"가 기록될 수 없기 때문에, 상기 SIP구성요소들 즉, SIP, 2.0,UDP등이 동일 주소의 메모리를 공유하고 있는 저장상태를 해지시키고, 각각의 구성요소마다 별도로 저장영역을 할당하여 할당된 해당 저장영역에서 수정이 이루어지도록 한다.char * szHost; ........ "SIP\0" for szProtocolName "and" 2.0\ "for" szProtocolVersion "in the structure defined by char * szComment;}" 0 "," * szTransport "is" UDP \ 0 ", and" szHost "contains the parsing result of" lg-proxy.lg.com \ 0 "as the character string value, and" szP \ 0 "of szTransport. In case that "SCTP_0" is to be modified, since the "SCTP" having a 4-bit size cannot be recorded in the position of "UDP" which is a 3-bit size, the SIP components, i.e., SIP, 2.0 , UDP, etc., cancel the storage state sharing the memory of the same address, and allocate the storage area separately for each component so that modification can be made in the allocated storage area.

한편 상기와 같이, 특정 헤더의 파싱이 이미 이루어진 경우가 아니라면, 상기 원본 메모리에 저장된 특정헤더를 복사복 메모리에 복사하여 파싱한 후에, 파싱한 결과를 이용해 상기 특정헤더를 수정하게 된다.On the other hand, as described above, if parsing of a specific header has not already been performed, the specific header stored in the original memory is copied to a copy-memory memory and parsed, and then the specific header is modified using the parsing result.

다음 전술한 수정 단계(S67)가 종료되면, 자신이 수정된 헤더임을 나타내는 플랙(flag)을 상기 특정 헤더 필드에 인코딩하는데, 예를 들면 자신이 수정된 헤더임을 나타낼 경우에는 해당 필드에 "1"을, 자신이 수정되지 않은 헤더임을 나타낼 경우에는 해당 필드에 "0"을 인코딩한다.When the above-described modification step S67 ends, a flag indicating that the header is a modified header is encoded into the specific header field. For example, if the header indicates that the header is a modified header, the field "1" is displayed. If it indicates that it is an unmodified header, it encodes "0" in the corresponding field.

이러한 플랙 인코딩이 종료되면 그 결과를 리턴 값으로 외부 쓰레드에 전송한다.When this flag is encoded, the result is sent to the external thread as a return value.

다음 이렇게 수정이 이루어진 상태에서 SIP메시지를 인코딩하는 단계를 도 7을 참조하여 설명한다.Next, the step of encoding the SIP message in the modified state is described with reference to FIG.

상기 도 7에 도시된 바와 같이, 먼저 SIP메시지에 특정 헤더 필드를 인코딩하라는 요청이 입력되면(S70), 상기 특정 헤더 필드의 원본이 저장된 위치를 상기 포인터 정보를 이용해 파악한 후(S71), 상기 특정헤더 필드가 수정된 헤더 필드인가 아닌가를 상기 플랙(flag)정보를 이용해 판단한다(S72).As shown in FIG. 7, when a request for encoding a specific header field is first input to a SIP message (S70), the location where the original of the specific header field is stored is determined using the pointer information (S71). Whether the header field is a modified header field is determined using the flag information (S72).

상기 판단 결과, 특정헤더필드가 수정된 필드인 경우에는 상기 특정 헤더 필드의 구조체(data structure)에 저장되어 있는 구조체 메모리에서 헤더 필드를 추출하여 이를 SIP메시지에 인코딩하고(S73), 상기 특정헤더 필드가 수정되지 않은 필드인 경우에는 상기 특정 헤더 필드의 원본을 인코딩하지 않고 SIP메시지에 바로 복사하도록 하여(S74) 수정되지 않은 특정 헤더 필드만 SIP메시지 인코딩 동작이 이루어지게 한다.As a result of the determination, when the specific header field is the modified field, the header field is extracted from the structure memory stored in the data structure of the specific header field and encoded in the SIP message (S73). If is an unmodified field, the original message of the specific header field is copied directly to the SIP message without encoding (S74) so that only the unmodified specific header field is performed for the SIP message encoding operation.

이상에서 상세히 설명한 바와 같이 본 발명에 따른 에스아이피 메시지 파싱 장치, 파싱 방법 및 그 생성 방법은 SIP메시지의 파싱시에 제한된 메모리 자원을 효율적으로 운용할 수 있으며 특정헤더의 SIP메시지 인코딩시 그 인코딩 처리(Processing) 성능을 비약적으로 향상시킬 수 있는 효과가 있다.As described in detail above, an SIP message parsing apparatus, a parsing method, and a generating method thereof according to the present invention can efficiently operate limited memory resources when parsing a SIP message, and encode an encoding process when encoding a SIP message of a specific header. Processing) can dramatically improve performance.

본 발명은 기재된 구체적인 예에 대해서만 상세히 설명되었지만 본 발명의 기술사상 범위 내에서 다양한 변형 및 수정이 가능함은 당업자에게 있어서 명백한 것이며, 이러한 변형 및 수정이 첨부된 특허청구범위에 속함은 당연한 것이다.Although the invention has been described in detail only with respect to the specific examples described, it will be apparent to those skilled in the art that various modifications and variations are possible within the spirit of the invention, and such modifications and variations belong to the appended claims.

Claims (7)

SIP메시지에서 헤더 필드를 분리하여 분리된 헤더 필드의 시작 위치와 크기를 포인터로 지정하는 전처리기와 ;A preprocessor that separates the header field from the SIP message and specifies the starting position and size of the separated header field as a pointer; 상기 포인터 정보를 이용해 외부 쓰레드의 파싱 요청에 따라 특정 헤더 필드를 파싱하는 파서부와 ;A parser unit for parsing a specific header field according to a parsing request of an external thread using the pointer information; 상기 파서부에서 파싱한 결과와 상기 전처리기에서 분리한 헤더 필드 및 포인터 정보를 저장하는 데이터 베이스와 ;A database for storing the result parsed by the parser and the header field and pointer information separated by the preprocessor; 상기 파싱 요청을 하는 외부 쓰레드와 상기 데이터 베이스를 인터페이스하는 API처리부로 이루어지는 에스아이피 메시지 파싱 장치.SPI message parsing device comprising an external thread that makes the parsing request and an API processing unit for interfacing the database. 제 1 항에 있어서, 상기 데이터 베이스는 ;The method of claim 1, wherein the database; 상기 전처리기에서 분리된 헤더 필드를 저장하는 메시지 저장부와 ;A message storage unit for storing the header field separated from the preprocessor; 상기 전처리기에서 지정된 포인터 정보를 저장하는 인덱스 어레이 저장부와;An index array storage unit for storing pointer information designated by the preprocessor; 상기 파서부에서 파싱된 결과를 저장하는 구조체 저장부로 이루어지는 것을 특징으로 하는 에스아이피 메시지 파싱 장치.SPI message parsing device comprising a structure storage unit for storing the result parsed by the parser. SIP메시지에서 분리된 헤더 필드를 저장하는 단계와 ;Storing the header field separated from the SIP message; 상기 저장된 헤더 필드의 시작위치와 크기를 포인터로 지정하여 저장하는 단계와 ;Designating and storing a starting position and a size of the stored header field as a pointer; 상기 저장된 포인터 정보를 이용해 외부 쓰레드의 파싱 요청시에만 특정 헤더필드를 파싱하는 단계로 이루어지는 것을 특징으로 에스아이피 메시지 파싱 방법.And parsing a specific header field only when the external thread parses the request using the stored pointer information. 제 3 항에 있어서, 상기 파싱 단계는 ;4. The method of claim 3, wherein said parsing step; 외부 쓰레드로부터 헤더필드의 파싱 요청을 전송받는 단계와 ;Receiving a parsing request of a header field from an external thread; 상기 전송된 파싱 요청에 따라 상기 포인트 정보를 이용해 파싱할 헤더필드가 저장된 위치를 파악하는 단계와 ;Determining a location in which a header field to be parsed is stored using the point information according to the transmitted parsing request; 상기 저장 위치가 파악된 헤더 필드를 별도의 저장영역에 복사하는 단계와 ;Copying the header field of the storage location to a separate storage area; 상기 복사된 헤더필드를 파싱하는 단계로 이루어지는 것을 특징으로 하는 에스아이피 메시지 파싱 방법.Parsing the copied header field. 제 3 항 또는 제 4 항에 있어서, 상기 파싱 단계는 ;The method of claim 3 or 4, wherein the parsing step; 상기 헤더 필드의 파싱 위치에 널 스트링(null string)을 삽입하여 파싱하는 것을 특징으로 하는 에스아이피 메시지 파싱 방법.And parsing by inserting a null string at a parsing position of the header field. SIP메시지에서 분리된 헤더 필드를 저장하는 단계와 ;Storing the header field separated from the SIP message; 상기 저장된 헤더 필드의 시작 위치와 크기를 포인터로 지정하여 저장하는 단계와 ;Designating and storing a starting position and a size of the stored header field as a pointer; 상기 포인터 정보를 이용해 외부 쓰레드의 인코딩 요청시 인코딩할 헤더 필드의 저장 위치를 파악하는 단계와 ;Determining a storage location of a header field to be encoded in an encoding request of an external thread using the pointer information; 상기 정보를 통해 그 저장 위치가 파악된 상기 인코딩할 헤더 필드가 수정된 헤드 필드인가를 판단하는 단계와 ;Determining whether the header field to be encoded, whose storage location is identified through the information, is a modified head field; 상기 판단 결과 수정된 헤드 필드일 경우에 상기 수정된 헤더 필드를 SIP메시지에 인코딩하는 단계로 이루어지는 것을 특징으로 하는 에스아이피 메시지 생성 방법.And encoding the modified header field in the SIP message when the head field is modified as a result of the determination. 제 6 항에 있어서, 상기 판단 결과 ;The method of claim 6, wherein the determination result; 상기 인코딩할 헤더 필드가 수정되지 않은 헤더 필드일 경우에는 저장된 헤더 필드를 SIP 메시지에 복사하는 단계로 이루어지는 것을 특징으로 하는 에스아이피 메시지 생성 방법.If the header field to be encoded is an unmodified header field, copying the stored header field to a SIP message.
KR10-2001-0085301A 2001-12-26 2001-12-26 Apparatus and Method for parsing the SIP message and producing method there of KR100437180B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0085301A KR100437180B1 (en) 2001-12-26 2001-12-26 Apparatus and Method for parsing the SIP message and producing method there of

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0085301A KR100437180B1 (en) 2001-12-26 2001-12-26 Apparatus and Method for parsing the SIP message and producing method there of

Publications (2)

Publication Number Publication Date
KR20030054869A KR20030054869A (en) 2003-07-02
KR100437180B1 true KR100437180B1 (en) 2004-06-23

Family

ID=32213589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0085301A KR100437180B1 (en) 2001-12-26 2001-12-26 Apparatus and Method for parsing the SIP message and producing method there of

Country Status (1)

Country Link
KR (1) KR100437180B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101467388B1 (en) * 2008-08-06 2014-12-01 에스케이텔레콤 주식회사 System and Method transmitting call setup message

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000052883A2 (en) * 1999-03-01 2000-09-08 Sun Microsystems, Inc. Method and apparatus for dynamic packet batching with a high perfromance network interface
WO2000052904A1 (en) * 1999-03-01 2000-09-08 Sun Microsystems, Inc. A high performance network interface
KR20010027192A (en) * 1999-09-10 2001-04-06 서평원 Method for processing message from communication system in pilot terminal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000052883A2 (en) * 1999-03-01 2000-09-08 Sun Microsystems, Inc. Method and apparatus for dynamic packet batching with a high perfromance network interface
WO2000052904A1 (en) * 1999-03-01 2000-09-08 Sun Microsystems, Inc. A high performance network interface
KR20010027192A (en) * 1999-09-10 2001-04-06 서평원 Method for processing message from communication system in pilot terminal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101467388B1 (en) * 2008-08-06 2014-12-01 에스케이텔레콤 주식회사 System and Method transmitting call setup message

Also Published As

Publication number Publication date
KR20030054869A (en) 2003-07-02

Similar Documents

Publication Publication Date Title
JP5842290B2 (en) Session start protocol adapter
CN101060464B (en) Address translator, message processing method and net system
US7412541B1 (en) Tokenized compression of session initiation protocol data
JP4353239B2 (en) Contact information registration method, node and distributed hash table
US20040003058A1 (en) Integration of service registration and discovery in networks
US20110176491A1 (en) Optimizing static dictionary usage for signal compression and for hypertext transfer protocol compression in a wireless network
AU3044501A (en) Methods and systems for implementing a real-time, distributed, hierarchical database using a proxiable protocol
KR20040041984A (en) method for processing session information of session initiation protocol system and recorded medium thereof
US7644165B2 (en) Method and apparatus for SIP messaging
CN102413147A (en) Agent server
CN101217533B (en) A synchronous big head portrait method and cluster server and terminal for the method
CN109327435B (en) Media resource acquisition method and device and gateway equipment
JP2004535743A (en) Domain naming system (DNS) for accessing databases
EP1719319B1 (en) Method and arrangement for state memory management
CN110971873B (en) Real-time monitoring method, monitoring system and storage medium
KR100437180B1 (en) Apparatus and Method for parsing the SIP message and producing method there of
JP5193182B2 (en) VoIP client information
JP5940990B2 (en) APL-SCM-FE and application linkage method
US8130679B2 (en) Individual processing of VoIP contextual information
KR20080093725A (en) Terminal unit for providing ip multimedia service on the basis of session initiaion protocol, call session control function device, method of transmitting and receiving thereof
JP2005317001A (en) Presence server, session control server and packet relay system
US20030177242A1 (en) Trigger-based session completion using external parties
KR100612262B1 (en) apparatus and method of data management in data communication service providing system
KR101006141B1 (en) Method of transmitting a sip message
KR100536911B1 (en) System and method for servicing internet phone

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080319

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee