KR100498756B1 - 인터넷 전화의 부가서비스 로직 결정 시스템 및 방법 - Google Patents

인터넷 전화의 부가서비스 로직 결정 시스템 및 방법 Download PDF

Info

Publication number
KR100498756B1
KR100498756B1 KR10-2002-0083633A KR20020083633A KR100498756B1 KR 100498756 B1 KR100498756 B1 KR 100498756B1 KR 20020083633 A KR20020083633 A KR 20020083633A KR 100498756 B1 KR100498756 B1 KR 100498756B1
Authority
KR
South Korea
Prior art keywords
service logic
call
logic
result
location information
Prior art date
Application number
KR10-2002-0083633A
Other languages
English (en)
Other versions
KR20040057176A (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 KR10-2002-0083633A priority Critical patent/KR100498756B1/ko
Publication of KR20040057176A publication Critical patent/KR20040057176A/ko
Application granted granted Critical
Publication of KR100498756B1 publication Critical patent/KR100498756B1/ko

Links

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
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1046Call controllers; Call servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer

Abstract

본 발명에 따른 인터넷 전화의 부가서비스 로직 결정 시스템은 인터넷 전화를 사용하는 사용자가 설정한 서비스 로직을 수신하는 등록 서버와, 수신된 서비스 로직이 저장된 데이터베이스와, 임의의 사용자(송신자)로부터 임의의 수신자와의 호 연결 요청 메시지를 수신하여 호 처리 서버에 전송하는 프락시 서버와, 호 연결 요청 메시지에 포함된 수신자 주소 정보에 대응되는 서비스 로직을 검색하고, 검색된 서비스 로직을 반복적으로 분석하여 통화를 위해 호를 설정해야할 위치 정보들, 송신자에게 통보해 줄 위치 정보들 및 호가 설정되면 안 되는 위치 정보들이 포함된 결과 정보 테이블을 생성하는 호 처리 서버를 포함하며, 프락시 서버는 상기 결과 정보 테이블에 의거하여 상기 송신자와 수신자간의 호 연결하거나 상기 송신지의 호 연결을 차단시킨다.
이와 같이 본 발명은 사용자의 상호 통화 요청이 있을 때 사용자가 등록한 인터넷 전화 부가 서비스에 대한 로직에 따라 호가 연결되어야 하는 또는 호가 연결되어서는 안 되는 정확한 위치를 결정하여 통화 연결 요청을 처리함으로써, 사용자의 선호도를 고려한 다양한 부가 서비스를 제공할 수 있을 뿐만 아니라 부가서비스 개발의 활성화를 유도할 수 있다.

Description

인터넷 전화의 부가서비스 로직 결정 시스템 및 방법{SYSTEM AND METHOD FOR DETERMINING SUPPLEMENTARY SERVICE LOGIC OF INTERNET TELEPHONY}
본 발명은 인터넷 전화 부가서비스에 관한 것으로, 특히 사용자가 등록한 로직에 따라 인터넷 전화 서비스를 제공할 수 있는 인터넷 전화의 부가서비스 로직 결정 시스템 및 방법에 관한 것이다.
기존에 제공되던 일반 전화 서비스가 정보 및 통신 기술의 발전에 힘입어 인터넷 상에서 제공되기 시작 되었다. 현재 국내에서는 하나로 통신, 새롬 기술, 애니유저넷 등에 의해서 무료 혹은 저가 이용료로 인터넷 서비스가 제공되고 있으나, 이러한 인터넷 전화 서비스는 두 사용자간의 기본 통화 서비스를 제공하는 수준에 머물고 있다. 이러한 기본 서비스 이외에 기존 유선 전화에서 제공되고 있는 호 전환, 호 예약, 부재중 안내, 재통화 등 여러 가지 유형의 부가서비스들의 제공이 매우 필요하다.
현재 IETF에서 제정한 호 처리 언어(CPL : Call Processing Language) 표준에서는 인터넷 상에서 사용자가 자신이 수신하는 전화에 대해 조건을 명시할 수 있는 방법과 조건이 만족하는 경우에 원하는 서비스 동작을 명시하여 전화 서비스를 받을 수 있도록 하기 위한 필요한 기능을 정의하고 있다. 예를 들면, 사용자는 사무실 전화에 통화 요청 즉, 벨이 울리면 무조건적으로 이동 전화 혹은 출장 중 받을 수 있는 전화로 전환하기 위한 조건, 통화를 요청한 수신자명에 따라 전화 서비스를 어디에서 받을 것인지 아니면 거부할 것인지를 미리 정해 놓는 조건, 수신하는 시간에 따라 전화 서비스를 어디에서 받을 것인지에 대한 조건을 명시하는 조건 등을 인터넷 전화 서비스 업체에 등록하여 사용자별 선호도에 따라 전화 서비스를 제공 받는다.
사용자는 원하는 전화 서비스에 대한 조건과 조건 만족 시 원하는 서비스를 CPL을 이용하여 명시할 수 있으며, 이를 사용자별 서비스 로직이라 할 수 있다. 이러한 CPL 기반의 사용자별 서비스 로직은 사용자에 의해서 명시된 조건들을 서버에 전송해주는 SIP(Session Initiation Protocol)를 이용하여 등록 서버인 레지스터에게 전달된다. 또한 CPL에서는 한 도메인내에서 각 사용자를 유일하게 구분하기 위해 SIP 주소를 사용하고, 사용자는 SIP 주소 형태를 이용하여 자신이 통화를 받을 수 있는 여러 위치 정보(예를 들면, 사무실, 가정의 인터넷 전화, 출장시 근무지에서의 인터넷 전화 등)를 등록할 수 있다. 각 사용자는 자신의 SIP 주소를 그 도메인내에 있는 서버에 등록하면, 서버는 RFC2543 SIP와 CPL 표준에 정의된 기능에 의해서 그 도메인내 사용자에 의해서 등록된 서비스 로직을 분석하여 호가 연결되어야 또는 호 설정을 막아야 되는 위치 정보를 찾아 낼 수 있어야 한다.
이러한 이유로, 인터넷 전화 서비스 업체에서는 서버에 등록된 서비스 로직을 분석하여 사용자의 위치 정보를 정확하게 찾아내기 위한 툴 개발에 많은 노력을 쏟고 있다.
본 발명의 목적은 상기와 같은 연구 결과에 의해 안출된 것으로, 사용자의 상호 통화 요청이 있을 때 사용자가 등록한 인터넷 전화 부가 서비스에 대한 로직에 따라 호가 연결되어야 하는 또는 호가 연결되어서는 안 되는 정확한 위치를 결정하여 통화 연결 요청을 처리함으로써, 사용자의 선호도를 고려한 다양한 부가 서비스를 제공할 수 있을 뿐만 아니라 부가서비스 개발의 활성화를 유도할 수 있는 인터넷 전화의 부가서비스 로직 결정 시스템 및 방법을 제공하고자 한다.
상기와 같은 목적을 달성하기 위하여 본 발명은, 사용자에 의해서 설정된 서비스 로직을 이용하여 인터넷 전화 부가서비스를 제공하는 인터넷 전화 부가서비스 제공 시스템에 있어서, 상기 인터넷 전화를 사용하는 사용자가 설정한 서비스 로직을 수신하는 등록 서버와, 상기 수신된 서비스 로직이 저장된 데이터베이스와, 상기 임의의 사용자(송신자)로부터 임의의 수신자와의 호 연결 요청 메시지를 수신하는 프락시 서버와, 상기 프락시 서버로부터 호 연결 요청 메시지를 제공받으며 상기 호 연결 요청 메시지에 포함된 수신자 주소 정보에 대응되는 서비스 로직을 검색하고, 상기 검색된 서비스 로직을 반복적으로 분석하여 통화를 위해 호를 설정해야할 위치 정보들, 송신자에게 통보해 줄 위치 정보들 및 호가 설정되면 안되는 위치 정보들이 포함된 결과 정보 테이블을 생성하는 호 처리 서버를 포함하며, 상기 프락시 서버는 상기 결과 정보 테이블에 의거하여 상기 송신자와 수신자간의 호 연결하거나 상기 송신지의 호 연결을 차단시킨다.
또한, 본 발명은 인터넷 전화 시스템의 부가서비스 제공 방법에 있어서, 송신자로부터 임의의 수신자와의 호 연결 요청 메시지를 수신하는 단계와, 상기 호 연결 요청 메시지에 따라 결과 정보 테이블, 위치 정보 리스트 및 트리 위치 정보 리스트를 초기화시키고, 상기 메시지에 포함된 수신자 주소를 트리 위치 정보 리스트에 추가시키는 단계와, 상기 호 연결 요청 메시지에 포함된 수신자 주소 정보에 대응되는 서비스 로직이 존재하는지의 여부를 판단하는 단계와, 상기 판단 결과, 상기 서비스 로직이 존재하는 경우에, 상기 검색된 서비스 로직 중에서 수신 부분만을 추출하는 단계와, 상기 수신 부분의 서비스 로직을 반복적으로 분석하여 결과 정보 테이블을 생성하는 단계와, 상기 결과 정보 테이블을 토대로 상기 송신자와 수신자간의 호 연결하거나 상기 송신지의 호 연결을 차단시키거나 상기 송신자에게 수신자의 변경된 위치 정보를 포함한 메시지를 송신하는 단계를 포함한다.
이하, 첨부한 도면을 참조하여 바람직한 실시 예에 대하여 상세히 설명한다.
도 1은 본 발명에 따른 인터넷 전화 부가 서비스를 제공하는 시스템을 나타내는 블록도이고, 도 2a 내지 2c는 본 발명에 따른 인터넷 전화 부가 서비스 시스템에서 호 처리 서버가 생성 및 관리하는 결과 정보 테이블, 위치 정보 리스트 및 결과 정보 리스트를 나타내는 도면이다.
도 1에 도시된 바와 같이, 인터넷 전화 부가서비스 제공 시스템은 다수의 VoIP 단말기(100/1∼100/n : 100), 통신망(150), VoIP 시스템(200)으로 구성되며, VoIP 시스템(200)은 프락시 서버(210), 등록 서버(220), 호 처리서버(230) 및 데이터베이스(240)로 구성된다.
VoIP 단말기(100)는 사용자가 원하는 서비스 로직을 설정할 수 있는 설정창을 제공하며, 사용자에 의해서 설정된 서비스 로직을 통신망(150)을 통해 VoIP 시스템(200)의 등록 서버(220)에 전송한다. 또한 VoIP 단말기(100)는 송수신자의 주소 정보를 갖는 사용자의 호 연결 요청 메시지를 VoIP 시스템(200)에 전송한 후에 VoIP 시스템(200)에 의해서 착신자의 VoIP 단말기와 호가 연결된다. 이때 착신자와 발신자간의 호는 자신이 등록한 서비스 로직에 의거하여 연결된다.
사용자에 의해서 설정된 서비스 로직은 호 처리 언어 스크립트로 변환되어 SIP 프로토콜을 통해 VoIP 시스템(200)의 등록 서버(220)에 전송되고, 전송된 서비스 로직은 데이터베이스(240)에 저장된다.
여기서, 인터넷 전화 부가서비스 로직은 송신 부분과 수신 부분으로 구성되며, 송신 부분은 사용자가 통화 요청을 하고자 할 때의 로직이고, 수신 부분은 통화를 받을 때의 서비스 로직이다. 또한, 사용자가 임의의 사용자에게 호 연결 요청을 하는 경우, 이러한 호 연결 요청 메시지는 VoIP 단말기(100)에 의해 SIP 메시지로 변환되어 프락시 서버(210)에 전송된다.
등록 서버(220)는 VoIP 단말기(100)에서 송신된 서비스 로직을 수신하여 데이터베이스(240)에 저장한다.
프락시 서버(210)는 VoIP 단말기(100)로부터 호 연결 요청 메시지를 수신한 후에 호 처리 서버(230)에 전달하여 호를 어떻게 처리해야하는지를 요청하고, 호 처리 서버(230)로부터 호 연결되어야 할 혹은 호가 연결되지 않아야할 수신자의 위치 정보를 수신한다. 프락시 서버(210)는 호 처리 서버(230)로부터 수신한 위치 정보에 대응되는 VoIP 단말기(100)에 호 설정 요청 메시지를 송신하고, 호 설정 요청 메시지에 대응되는 호 설정 응답 메시지를 VoIP 단말기(100)로부터 수신한 후에 송수신자의 VoIP 단말기간에 호를 연결시킨다.
호 처리 서버(230)는 프락시 서버(210)의 서비스 로직에 요청에 따라 데이터베이스(240)에 저장된 수신자의 서비스 로직을 인출하고, 인출된 서비스 로직의 분석을 통해 송신자가 통화 요청의 권한이 있는지, 수신자가 송신자로부터의 호 요청을 받을 수 있는지 혹은 호를 전환하였는지의 여부를 나타내는 결과 정보 테이블을 생성하여 프락시 서버(210)에 제공한다. 다시 말해서 호 처리 서버(230)는 서비스 로직의 분석을 통해 송신자와 호가 연결되어야할 위치 정보 혹은 연결되지 않아야할 위치 정보를 갖는 결과 정보 테이블을 생성하여 프락시 서버(210)에 알려준다.
여기서, 호 처리 서버(230)는 서비스 로직의 분석을 토대로 생성된 위치 정보 리스트과 트리 위치 정보 리스트를 토대로 결과 정보 테이블을 생성하여 프락시 서버(210)에 전송한다. 이러한 위치 정보 리스트, 트리 위치 정보 리스트 및 결과 정보 테이블의 구조는 도 2a 및 도 2c를 참조하여 설명한다.
결과 정보 테이블은 사용자들이 등록한 서비스 로직 분석 결과를 최종적으로 셋팅할 테이블로써, 그 구조는, 도 2a에 도시된 바와 같이, 7개의 값들 중에 어느 하나 값으로 셋팅된 액션 타입을 갖는다. 호 처리 서버(230)는 서비스 로직 검색 결과 수신자가 등록한 서비스 로직이 존재하지 않은 경우에“1”로 액션 타입 값을 셋팅하고, 서비스 로직 분석 결과 수신자가 등록한 서비스 로직은 존재하지만 호 설정을 위한 서비스 로직이 아닌 경우에 “2”로 액션 타입을 셋팅하고, 서비스 로직 분석 결과 수신자의 등록한 위치 정보로 호를 설정할 필요가 있는 경우에 “3”으로 액션 타입을 셋팅하고, 서비스 로직 분석 결과 수신자가 등록한 위치 정보로 호 설정이 필요하나 송신자로 수신자가 등록한 위치 정보를 송신해줘야 하는 경우에 “4”로 액션 타입을 셋팅하고, 서비스 로직 분석 결과 수신자가 호 연결을 거부하는 경우에 “5”로 액션 타입을 셋팅하고, 서비스 로직 분석 결과 수신자가 전자 메일 서비스를 요청한 경우에 “6”으로 액션 타입을 셋팅하고, 서비스 로직 분석 결과 수신자가 로그 파일 기록을 요청한 경우에 “7”로 액션 타입을 셋팅한다.
위치 정보 리스트는, 도 2b에 도시된 바와 같이, 사용자의 위치 정보를 나타내는 테이블로써, 하나 이상의 위치 정보가 포함되어 있다.
트리 위치 정보 리스트는, 도 2c에 도시된 바와 같이, 사용자의 위치 정보를 나타내는 테이블로써, 한 사용자의 위치 정보가 다른 사용자의 위치 정보를 포함하고, 다른 사용자는 또 다른 사용자의 위치 정보를 포함하고 있는 경우를 반영하기 위하여 트리 기반의 구조를 갖는다.
호 처리 서버(230)는 데이터베이스(240)에 저장된 서비스 로직의 분석 결과를 이용하여 상기와 같은 위치 정보 리스트, 트리 위치 정보 리스트 및 결과 정보 테이블을 형성하고, 형성된 결과 정보 테이블을 프락시 서버(210)에 전송하여 호 연결을 방법을 제공한다.
상기와 같은 구성을 갖는 인터넷 전화 부가서비스 제공 시스템에서 호 처리 서버의 서비스 로직 분석 과정은 도 3 내지 도 7을 참조하여 설명한다. 도 3 내지 도 8은 본 발명에 따른 호 처리 서버의 서비스 로직 분석 과정을 도시한 흐름도이다.
도 3에 도시된 바와 같이, 호 처리 서버(230)는 프락시 서버(210)로부터 서비스 로직 요청에 따라 결과 정보 테이블, 위치 정보 리스트 및 트리 위치 정보 리스트를 초기화시킨 후에, 프락시 서버(210)로부터 전송된 호 연결 요청 메시지의 “From” 및“Request URI” 주소를 송신자 및 수신자의 주소로 할당한다(S300, S302). 호 처리 서버(230)는 트리 위치 정보 리스트에 수신자의 주소를 추가시킨 후에 데이터베이스(240)를 검색하여 등록된 수신자의 서비스 로직이 존재하는지의 여부를 판단한다(S304, S306, S308).
단계 S308의 판단 결과, 수신자의 서비스 로직이 데이터베이스(240)에 존재하지 않은 경우에, 호 처리 서버(230)는 결과 정보 테이블에서 액션 타입을 “1” 로 셋팅하여 프락시 서버(210)에 전달한다(S310, S312).
프락시 서버(210)는 호 처리 서버(230)에서 전송된 결과 정보 테이블을 토대로 호를 연결하는데, 다시 말해서 호 요청 메시지에 포함된 송수신자의 주소 정보를 이용하여 송수신자간에 호를 연결시킨다.
단계 S308의 판단 결과, 수신자의 서비스 로직이 데이터베이스(240)에 존재하는 경우에, 호 처리 서버(230)는 데이터베이스(240)에 저장된 수신자의 서비스 로직 중에서 수신 부분(즉, <incoming> 부분)을 추출한다(S314).
호 처리 서버(230)는 추출된 수신 부분의 서비스 로직에서 첫 번째 라인을 읽어 드린 후에, 도 4에 도시된 바와 같이, 플로우 “A”로 진행하여 첫 번째 라인을 분석하는데(S316), 첫 번째 라인의 분석 결과가 서비스 로직을 닫는 경우인지를 판단한다(S318).
단계 S318의 판단 결과, 첫 번째 라인의 분석 결과가 서비스 로직을 닫는 경우인 경우에, 호 처리 서버(230)는 서비스 로직이 “</cpl>”로 끝나는지를 판단한다(S320).
단계 S320의 판단 결과, “</cpl>”로 끝나지 않은 경우에, 호 처리 서버(230)는 다음 라인을 읽어들인 후에 단계 S318로 진행하고(S322), “</cpl>”로 끝나는 경우에는 다음 단계인 “B” 플로우로 진행한다.
단계 S318의 판단 결과, 첫 번째 라인의 분석 결과가 서비스 로직을 닫지 않은 경우에, 호 처리 서버(230)는 서비스 로직이 “Address-switch”,“String-switch”,“Time-switch”,“Language-switch”,“Priority-switch”로 이루어진 제 1 조건 중 하나에 속하는 로직인지를 판단한다(S324).
단계 S324의 판단 결과, 서비스 로직이 제 1 조건 중 하나의 조건에 속하는 경우에, 호 처리 서버(230)는 서비스 로직이 속하는 조건에 만족하는 로직인지의 여부를 판단한다(S326).
단계 S326의 판단 결과, 조건에 만족하지 않은 서비스 로직인 경우에, 호 처리 서버(230)는 결과 정보 테이블에서 조건 만족 여부를 “0”으로 셋팅한 다음에 다음 라인을 판독한 후에 다음 라인을 분석하기 위해 “A” 플로우의 첫 부분으로 돌아간다(S328, S330).
단계 S326의 판단 결과, 조건에 만족하는 서비스 로직인 경우에, 호 처리 서버(230)는 결과 정보 테이블에서 조건 만족 여부를 “1”로 셋팅한 다음에 단계 S318로 돌아간다(S332).
단계 S324의 판단 결과, 제 1 조건에 속하지 않은 서비스 로직인 경우에, 호 처리 서버(230)는 “location”,“remove-location”,“look-up” 제 2 조건 중 하나에 속하는 로직인가를 판단한다(S334).
단계 S334의 판단 결과, 제 2 조건에 만족하지 않은 서비스 로직인 경우에, 호 처리 서버(230)는 플로우 “C”로 진행하고, 제 2 조건에 만족한 서비스 로직이 아닌 경우에 플로우 “D”로 진행한다.
플로우 “B”에 대한 설명은 도 5를 참조하여 설명한다. 도 5는 사용자가 설정한 수신 부분 서비스 로직 라인에 “</cpl>”포함되어 있는 경우 결과 정보 테이블을 설정하는 과정을 도시한 흐름도이다.
도 5에 도시된 바와 같이, 호 처리 서버(230)는 서비스 로직이 “</cpl>”인지의 여부를 판단한다(S400).
단계 S400의 판단 결과, 서비스 로직이 “</cpl>”이 아닌 경우에 호 처리 서버(230)는 플로우 “A”로 돌아가며, 서비스 로직이 “</cpl>”인 경우에 트리 위치 정보 리스트에 상위 노드가 존재하는 지의 여부를 판단한다(S402).
단계 S402의 판단 결과, 상위 노드가 존재하는 경우에, 호 처리 서버(230)는 트리 위치 정보 리스트에 상위 노드의 위치 정보에 대응되는 서비스 로직 부분을 데이터베이스(240)에서 검색한 후에, 이를 분석하기 위해 플로우 “A”의 단계 S318로 진행한다(S404).
단계 S402의 판단 결과, 상위 노드가 존재하지 않은 경우에, 호 처리 서버(230)는 조건 만족 여부의 값이 “0”인지의 여부를 판단한다(S406).
단계 S406의 판단 결과, 조건 만족 여부의 값이 “0”인 경우에, 호 처리 서버(230)는 결과 정보 테이블의 액션 타입을 “2”(“특별한 서비스 로직 없음”)로 셋팅한 다음 셋팅된 결과 정보 테이블을 프락시 서버(210)에 전달한다(S408, S410).
플로우 “C”에 대한 설명은 도 6을 참조하여 설명한다. 도 6은 서비스 로직이 제 2 조건을 만족한 경우에 서비스 로직 분석 과정을 도시한 흐름도이다.
도 6에 도시된 바와 같이, 서비스 로직이 제 2 조건 중에서“location”인 경우에, 호 처리 서버(230)는 분석중인 라인의 다음 라인에 대한 정보를 저장한 후에 “location”에 해당되는 위치 정보를 트리 위치 정보 리스트의 하위 노드에 추가시킨다(S500, S502, S504).
호 처리 서버(230)는 “location”의 위치 정보에 대응되는 서비스 로직이 데이터베이스(240)에 존재하는지의 여부를 판단한다(S508).
단계 S508의 판단 결과, 서비스 로직이 존재하는 경우에 호 처리 서버(230)는 “location”에 포함된 위치 정보에 대응되는 서비스 로직 중에서 수신 부분을 추출하고, 추출된 수신 부분 중에서 첫 라인을 읽어드린 후에 플로우 “A”로 진행한다(S510, S512).
단계 S508의 판단 결과, 서비스 로직이 존재하지 않을 경우에 호 처리 서버(230)는 “location”에 포함된 위치 정보를 위치 정보 리스트에 추가시키고, 트리 위치 정보 리스트를 체크하여 “location”에 포함된 위치 정보의 상위 노드가 존재하는지를 판단한다(S514, S516)
단계 S516의 판단 결과, 상위 노드가 존재하는 경우에 호 처리 서버(230)는 상위 노드에 대응되는 서비스 로직을 분석하기 위하여 플로우 “A”로 진행한다.
서비스 로직이 제 2 조건 중에서“remove_location”인 경우에(S520), 호 처리 서버(230)는 “remove_location”에 해당되는 위치 정보를 위치 정보 리스트에서 삭제시키고,“remove_location” 태그까지 분석하지 않고 플로우 “B”로 진행한다(S522, S524).
서비스 로직이 제 2 조건 중에서“lookup”인 경우에(S504), 호 처리 서버(230)는 “lookup”에 해당되는 위치 정보에 대응되는 서비스 로직이 데이터베이스(240)에 존재하는지의 여부를 판단한다(S526, S528).
단계 S528의 판단 결과, 서비스 로직이 존재하지 않은 경우 “lookup” 태그 부분을 분석하지 않고 플로우 “B”로 진행하고, 서비스 로직이 존재하는 경우에는 바로 플로우 “B”로 진행한다(S530, S532).
호 처리 서버(230)는 서비스 로직의 라인이 제 2 조건 중 어느 하나에도 속하지 않은 경우에 분석중인 라인을 에러 처리한다(S534).
플로우 “D”는 서비스 로직의 라인이 제 1, 2 조건에 만족하지 않은 경우에 서비스 로직을 분석하는 과정으로써, 그 설명은 도 7을 설명한다. 도 7은 본 발명에 따른 서비스 로직 분석 과정 중에서 제 1, 2 조건에 만족하지 않은 경우에 서비스 로직 분석 과정을 도시한 흐름도이다.
도 7에 도시된 바와 같이, 서비스 로직이 “proxy”인 경우에, 호 처리 서버(230)는 위치 정보 리스트에 기록된 모든 주소 정보를 결과 정보 테이블에 포워딩 정보 중에서 사용자의 위치 정보에 추가시킨 후에, 위치 정보 리스트를 초기화시킨다(S600, S612, S614). 다음으로, 호 처리 서버(230)는 서비스 로직에서 다음 라인을 읽어 드린 후에 다음 라인을 분석하기 위한 플로우 “B”로 진행한다(S626).
서비스 로직이 “redirect”인 경우에, 호 처리 서버(230)는 위치 정보 리스트의 모든 주소 정보를 결과 정보 테이블의 송신자 포워딩 정보 부분 중에서 사용자의 위치 정보에 추가시킨 후에, 위치 정보 리스트를 초기화시킨다(S602, S616, S618). 다음으로, 호 처리 서버(230)는 서비스 로직에서 다음 라인을 읽어 드린 후에 다음 라인을 분석하기 위한 플로우 “B”로 진행한다(S626).
서비스 로직이 “reject”인 경우에, 호 처리 서버(230)는 결과 정보 테이블의 거절 정보 부분에 “reject”에 포함된 메시지를 셋팅시킨 후 서비스 로직에서 다음 라인을 읽어 드리고, 다음 라인을 분석하기 위한 플로우 “B”로 진행한다(S604, S620, S626).
서비스 로직이 “mail”인 경우에, 호 처리 서버(230)는 결과 정보 테이블의 거절 정보 부분에 “mail”에 포함된 메일 정보를 셋팅시킨 후 서비스 로직에서 다음 라인을 읽어 드리고, 다음 라인을 분석하기 위한 플로우 “B”로 진행한다(S606, S622, S626).
서비스 로직이 “log”인 경우에, 호 처리 서버(230)는 결과 정보 테이블의 거절 정보 부분에 로그 스트링을 셋팅시킨 후 서비스 로직에서 다음 라인을 읽어 드리고, 다음 라인을 분석하기 위한 플로우 “B”로 진행한다(S608, S624, S626).
호 처리 서버(230)는 서비스 로직의 라인이 “proxy”,“redirect”,“reject”,“mail” 및 “log” 중 어느 하나에도 속하지 않은 경우에 분석중인 라인을 에러 처리한다(S610).
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다. 도 8 내지 10은 본 발명에 따른 서비스 로직 분성 과정을 통해 인터넷 전화 부가서비스를 제공하는 과정을 나타내는 흐름도이다.
설명에 앞서, 인터넷 전화 서비스를 사용하는 사용자들 중에서 사용자 1, 2, 3이 등록 서버(220)에 서비스 로직을 등록한 사용자이고, 사용자 4, 5는 서비스 로직을 등록하지 않은 사용자로 예를 들어 설명한다.
각 사용자 1, 2, 3이 서비스 로직으로 등록한 자신의 위치 정보는 아래의 표 1과 같다.
사용자명 등록된 사용자의 위치 정보(자신 포함)
사용자 1 user1@cpl.etri.re.kr, user1-1@cpl.etri.re.kr
사용자 2 user2@cpl.etri.re.kr,
사용자 3 user3@cpl.etri.re.kr, user3-1@cpl.etri.re.kr
사용자 4 user4@cpl.etri.re.kr
사용자 5 user5@cpl.etri.re.kr
상기와 같은 각 사용자들이 등록한 서비스 로직간의 관계를 나타내는 트리 구조는 도 8을 참조하여 설명한다.
도 8에 도시된 바와 같이, 사용자 1은 자신의 통화를 user1-1@cpl.etri.re.kr과 사용자 2로 전환한 상태이고, user1-1@cpl.etri.re.kr은 또 다시 user3@cpl.etri.re.kr과 user3-1@cpl.etri.re.kr로 전환한 상태이고, user3-1@cpl.etri.re.kr은 user4@cpl.etri.re.kr로 전환한 상태이다.
상기와 같은 각 사용자가 등록한 서비스 로직은 도 9에 도시되어 있다.
호 처리 서버(230)는 내부적으로 사용하는 결과 정보 테이블, 위치 정보 리스트 및 트리 위치 정보 리스트를 아래와 같이 생성한다.
[결과 정보 테이블]
Struct ResultInfTable {
enum ActionType{NoServiceLogic=1,
NothingSpecial=2,
Forwarding=3,
ForwardingToCaller=4,
Reject=5,
Mail=6,
Log=7}
struct ForwardingInf {
ActionType=3;
string Array ContactList[10];
}
struct ForwardingToCallerInf {
ActionType=4;
string Array ContactList[10];
}
struct RejectInf {
ActionType=5;
char* Reason;
}
struct MailInf {
ActionType=6;
char* mailaddress;
}
struct LogInf {
ActionType=3;
char* log;
}
}
[위치 정보 리스트]
string Array ContactList[10];
}
ContactList ListOfContactAddress;
[트리 위치 정보 리스트]
struct TreeOfContactList {
char* address;
TreeOfContactList Array Pointer[5]; //여러 개의 위치정보를 포인트하는 변수
}
TreeOfContactList TreeList;
사용자 5가 사용자 1과 통화하기 위하여 자신의 VoIP 단말기(100)를 이용하여 호 연결 요청 메시지를 VoIP 시스템(200)에 전송한 경우에 VoIP 시스템(200)의 서비스 로직 분석 과정을 설명하면 아래와 같다.
사용자 5의 VoIP 단말기(100)로부터 수신한 호 연결 요청 메시지인 SIP 메시지에는, 도 10에 도시된 바와 같이, 송수신자의 주소 정보가 포함되어 있다. 송신자 주소 정보는 user5@cpl.etri.re.kr이고, 수신자 주소 정보는 user1@pl.etri.re.kr이다.
프락시 서버(210)는 상기와 같은 호 연결 요청 메시지를 수신한 후에 이를 호 처리 서버(230)에 전달한다.
호 처리 서버(230)는 호 연결 요청 메시지에 포함된 송수신자 주소 정보 중에서 수신자 주소 정보인 “user1@cpl.etri.re.kr”를 아래와 같이 트리 위치 정보 리스트의 위치 정보1 추가시킨다.
TreeList.address=user1@cpl.etri.re.kr;
Pointer[1]=NULL;
이후, 호 처리 서버(230)는 수신자에 대응되는 서비스 로직을 데이터베이스(240)에서 검색하고, 검색된 서비스 로직에서 수신부분에 해당되는 <incoming> 부분에서 첫 라인인 “<location url="sip:user1-1@cpl.etri.re.kr">”를 분석한다.
분석 결과, 호 처리 서버(230)는 “location” 로직에 해당되는 단계 S500부터 S518를 수행한다.
먼저, 호 처리 서버(230)는 아래와 같이 다음에 분석할 라인 정보를 저장함과 아울러 현재 라인의 정보(current_line)인 주소 정보 "sip:user1-1@cpl.etri.re.kr"를 “NextPointer1”로 할당시킨다. 다시 말해서, 호 처리 서버(230)는 "sip:user1-1@cpl.etri.re.kr"를 위치 정보 1의 하위 노드 1에 추가시킨다.
NextPointer1=current_line;
TreeList1.address = user1@cpl.etri.re.kr;
Pointer[1] = TreeList1-1;
TreeList1-1.address = user1-1@cpl.etri.re.kr;
Pointer[1]=NULL;
호 처리 서버(230)는 user1-1에 대한 서비스 로직을 데이터베이스(240)에서 검색하며, 검색된 user1-1의 서비스 로직 중에서 수신 부분인 <incoming> 부분의 첫 번째 라인인 “<location url="sip:user3@cpl.etri.re.kr">”를 분석한다.
이후, 호 처리 서버(230)는 아래와 같이 현재 분석 중인 라인의 정보를 “NextPointer2”의 값으로 저장함과 아울러 라인에 포함된 주소 정보("sip:user3@cpl.etri.re.kr")를 트리 위치 정보 리스트에서 추가하는데, 이러한 주소 정보("sip:user3@cpl.etri.re.kr")는 하위 노드 1의 하위 노드인 위치 정보 1에 추가된다.
NextPointer2 = currect_line;
TreeList1.address = user1@cpl.etri.re.kr;
Pointer[1] = TreeList1-1;
TreeList1-1.address = user1-1@cpl.etri.re.kr;
Pointer[1]=TreeList3;
TreeList3.address = user3@cpl.etri.re.kr;
Pointer[1]=NULL;
계속해서, 호 처리 서버(230)는 user3에 대한 서비스 로직이 데이터베이스(240)에 저장되어 있는지의 여부를 판단하는데, 판단 결과 user3에 대한 서비스 로직이 없기 때문에 user3의 주소 정보(user3@cpl.etri.re.kr)를 위치 정보 리스트에 추가시킨다.
ListOfContactList[1] = user3@cpl.etri.re.kr
여기서, user3@cpl.etri.re.kr 값을 갖고 있는 “TreeList3”의 상위 노드가 존재하기 때문에, 호 처리 서버(230)는 상위 노드에 대한 user1-1@cpl.etri.re.kr에 대한 서비스 로직을 다시 분석하기 위해 user1-1의 서비스 로직의 <incoming> 부분으로 돌아간다. 다시 말해서, 호 처리 서버(230)는 “NextPointer2”에 해당되는 다음 라인인 “<location url="sip:user3-1@cpl.etri.re.kr">”를 분석한다.
호 처리 서버(230)는 아래와 같이 라인에 해당되는 주소 정보인“user3-1@cpl.etri.re.kr" 을 트리 위치 정보 리스트에서 위치 정보 1의 하위 노드인 하위 노드 2로 추가시킴과 더불어 다음 라인에 대한 정보를 “NextPointer3”으로 저장한다.
NextPointer3 = currect_line;
TreeList1.address = user1@cpl.etri.re.kr;
Pointer[1] = TreeList2;
TreeList1-1.address = user1-1@cpl.etri.re.kr;
Pointer[1]=TreeList3;
Pointer[2]=TreeList3-1;
TreeList3.address = user3@cpl.etri.re.kr;
Pointer[1]=NULL;
TreeList3-1.address = user3-1@cpl.etri.re.kr;
Pointer[1]=NULL;
호 처리 서버(230)는 user3-1에 대응되는 서비스 로직을 데이터베이스(240)에서 검색하고, 검색된 user3-1의 서비스 로직에서 <incoming> 부분의 첫 라인인 “<location url="sip:user4@cpl.etri.re.kr">”를 아래와 같이 트리 위치 정보 리스트에 추가함과 더불어 분석해야할 다음 라인 정보를 저장한다. 다시 말해서, 호 처리 서버(230)는 "user4@cpl.etri.re.kr"를 트리 위치 정보 리스트에서 하위 노드 2의 하위 노드에 해당되는 위치 정보 1로 추가시킨다.
NextPointer4 = current_line;
TreeList1.address = user1@cpl.etri.re.kr;
Pointer[1] = TreeList2;
TreeList1-1.address = user1-1@cpl.etri.re.kr;
Pointer[1]=TreeList3;
Pointer[2]=TreeList3-1;
TreeList3.address = user3@cpl.etri.re.kr;
Pointer[1]=NULL;
TreeList3-1.address = user3-1@cpl.etri.re.kr;
Pointer[1]=TreeList4;
TreeList4.address = user4@cpl.etri.re.kr;
Pointer[1]=NULL;
계속해서, 호 처리 서버(230)는 user4에 대한 서비스 로직이 데이터베이스(240)에 저장되어 있는지의 여부를 판단하는데, 판단 결과 user4에 대한 서비스 로직이 없기 때문에 user4의 주소 정보(user4@cpl.etri.re.kr)를 아래와 같이 위치 정보 리스트에 추가시킨다.
ListOfContactList[2] = user4@cpl.etri.re.kr
트리 위치 구조에서 user4의 주소 정보에 상위 노드가 존재하기 때문에, 호 처리 서버(230)는 used4의 상위 노드인 user3-1@cpl.etri.re.kr의 서비스 로직을 계속해서 분석한다. 즉 호 처리 서버(230)는 “NextPointer4”의 정보를 읽어드린 후에 수행하는데, “NextPointer4”의 정보가 “proxy”에 해당되는 로직이기 때문에 ListOfContactList[5]의 모든 위치 정보를 결과 정보 리스트에 추가시킨다.
또한, 호 처리 서버(230)는 ResultInTable, ForwardingInf, 및 ContactList 구조체를 생성하여 아래와 같이 result, forwarding, contact로 할당한다.
ResultInfTable result;
Forwarding forwarding;
ContactList contact;
호 처리 서버(230)가 CurrentContactList[1]에 user3@cpl.etri.re.kr을 추가시키고, CurrentContactList[2]에 user4@cpl.etri.re.kr을 추가시킨 후에 초기화시키면 아래와 같다.
result.forwarding.contact[1] = user3@cpl.etri.re.kr;
result.forwarding.contact[2] = user4@cpl.etri.re.kr;
ListOfContactList[5] = "" //초기화 시킴
이후, 호 처리 서버(230)는 다음 라인의 </location>과 </incoming>를 읽어 들린 후에 </cpl>을 읽어 드린 후에, </cpl>에 대응되는 로직을 수행한다. 다시 말해서, 호 처리 서버(230)는 마지막 라인에 해당하고 트리 위치 정보 리스트에 user3-1@cpl.etri.re.kr의 상위 노드인 user1-1@cpl.etri.re.kr이 존재하기 때문에 user1-1의 스크립트 중 NextPointer3에 해당되는 정보를 분석한다.
NextPointer3의 정보가 proxy 로직에 해당되기 때문에, 호 처리 서버(230)는 ListOfContactList의 모든 위치 정보를 결과 정보 리스트에 추가시키는데, 이 경우 ListOfContactList[5]에 추가된 위치 정보가 없기 때문에 추가시키지 않는다.
계속해서, 호 처리 서버(230)는 다음 라인의 </location>과 </incoming>를 읽어 들린 후에 </cpl>을 읽어 드리면서, </cpl>에 대응되는 로직을 수행한다. 다시 말해서, 호 처리 서버(230)는 </cpl>에 해당하고 트리 위치 정보 리스트에 user1-1@cpl.etri.re.kr의 상위 노드인 user1@cpl.etri.re.kr이 존재하기 때문에 user1의 스크립트 중 NextPointer1에 해당되는 정보를 분석한다.
호 처리 서버(230)는 NextPointer1의 정보인 <location url="sip:user2@cpl.etri.re.kr">을 분석하는데, 아래와 같이 NextPointer1의 정보를 트리 위치 정보 리스트에 추가함과 더불어 분석해야할 다음 라인 정보를 NextPointer5에 저장한다. 다시 말해서, 호 처리 서버(230)는 "user2@cpl.etri.re.kr"를 트리 위치 정보 리스트에서 user1의 하위 노드로 추가시킨다.
NetxPointer5=current_line;
TreeList1.address = user1@cpl.etri.re.kr;
Pointer[1] = TreeList1-1;
Pointer[2] = TreeList2;
TreeList1-1.address = user1-1@cpl.etri.re.kr;
Pointer[1]=TreeList3;
Pointer[2]=TreeList3-1;
TreeList2.address = user2@cpl.etri.re.kr;
Pointer[1]=NULL;
TreeList3.address = user3@cpl.etri.re.kr;
Pointer[1]=NULL;
TreeList3-1.address = user3-1@cpl.etri.re.kr;
Pointer[1]=TreeList4;
TreeList4.address = user4@cpl.etri.re.kr;
Pointer[1]=NULL;
이후, 호 처리 서버(230)는 user2에 대응되는 서비스 로직을 데이터베이스(240)에서 검색하고, 검색된 user2의 서비스 로직에서 <incoming> 부분의 첫 라인인 <address-switch field="origin">을 분석한다. 다시 말해서, 호 처리 서버(230)는 송신자의 주소가 <address is="user5@cpl.etri.re.kr">에 만족하는지의 확인하며, 확인 결과 만족하기 때문에 결과 정보 리스트 테이블에서 조건 만족 여부에 해당되는 변수 플래그를 "1"로 셋팅한 후에 다음 라인을 분석한다.
호 처리 서버(230)는 다음 라인인 <reject reason="I don′t want to your call"> 분석하여 아래와 같이 결과 정보 리스트 테이블의 거절 정보를 셋팅한다.
RejectInf reject;
result.reject.Reason = "I don't want to your call"
계속해서, 호 처리 서버(230)는 다음 라인을 분석하는데, 다음 라인은 로직을 닫는 경우이기 때문에 순차적으로 </address>, </address-switch>, </incoming> 및 </cpl>를 읽어 드린다. 호 처리 서버(230)는 읽어드린 </cpl>이 마지막 라인에 해당되면서 트리 위치 정보 리스트에서 user1에 상위 노드가 존재하기 않기 때문에 최종적으로 생성된 결과 정보 리스트 테이블을 프락시
아래와 같이 트리 위치 정보 리스트에 추가함과 더불어 분석해야할 다음 라인 정보를 저장한다. 다시 말해서, 호 처리 서버(230)는 "user4@cpl.etri.re.kr"를 트리 위치 정보 리스트에서 하위 노드 2의 하위 노드에 해당되는 위치 정보 1로 추가시킨다.
이상 설명한 바와 같이, 본 발명은 사용자의 상호 통화 요청이 있을 때 사용자가 등록한 인터넷 전화 부가 서비스에 대한 로직에 따라 호가 연결되어야 하는 또는 호가 연결되어서는 안 되는 정확한 위치를 결정하여 통화 연결 요청을 처리함으로써, 사용자의 선호도를 고려한 다양한 부가 서비스를 제공할 수 있을 뿐만 아니라 부가서비스 개발의 활성화를 유도할 수 있다.
도 1은 본 발명에 따른 인터넷 전화 부가 서비스를 제공하는 시스템을 나타내는 블록도이고,
도 2a 내지 2c는 본 발명에 따른 인터넷 전화 부가 서비스 시스템에서 호 처리 서버가 생성 및 관리하는 결과 정보 테이블, 위치 정보 리스트 및 결과 정보 리스트를 나타내는 도면이고,
도 3 내지 도 7은 본 발명에 따른 인터넷 전화 부가 서비스 시스템이 서비스 로직을 분석하는 과정을 도시한 흐름도이고,
도 8 내지 도 10은 본 발명에 따른 인터넷 전화 부가 서비스 시스템이 서비스 로직을 분석하여 호 처리 과정을 설명하기 위한 예시도이다.
<도면의 주요부분에 대한 부호의 설명>
100 : VoIP 단말기 150 : 통신망
200 : VoIP 시스템 210 : 프락시 서버
220 : 등록 서버 230 : 호 처리 서버
240 : 데이터베이스

Claims (29)

  1. 사용자에 의해서 설정된 서비스 로직을 이용하여 인터넷 전화 부가서비스를 제공하는 인터넷 전화 부가서비스 제공 시스템에 있어서,
    상기 인터넷 전화를 사용하는 사용자가 설정한 서비스 로직을 수신하는 등록 서버와,
    상기 수신된 서비스 로직이 저장된 데이터베이스와,
    상기 임의의 사용자(송신자)로부터 임의의 수신자와의 호 연결 요청 메시지를 수신하는 프락시 서버와,
    상기 프락시 서버로부터 호 연결 요청 메시지를 제공받으며 상기 호 연결 요청 메시지에 포함된 수신자 주소 정보에 대응되는 서비스 로직을 검색하고, 상기 검색된 서비스 로직을 반복적으로 분석하여 통화를 위해 호를 설정해야할 위치 정보들, 송신자에게 통보해 줄 위치 정보들 및 호가 설정되면 안 되는 위치 정보들이 포함된 결과 정보 테이블을 생성하는 호 처리 서버를 포함하며,
    상기 프락시 서버는 상기 결과 정보 테이블에 의거하여 상기 송신자와 수신자간의 호 연결하거나 상기 송신지의 호 연결을 차단시키는 것을 특징으로 하는 인터넷 전화의 부가서비스 로직 결정 시스템.
  2. 제 1 항에 있어서,
    상기 사용자가 설정할 수 있는 서비스 로직은, 수신부분과 송신부분으로 나누어지는 인터넷 전화의 부가서비스 로직 결정 시스템.
  3. 제 1 항에 있어서,
    상기 호 처리 서버는, 상기 서비스 로직 분석에 따라 트리 위치 정보 리스트 및 위치 정보 리스트를 생성하는 인터넷 전화의 부가서비스 로직 결정 시스템.
  4. 제 3 항에 있어서,
    상기 호 처리 서버는, 상기 프락시 서버로부터 호 연결 요청 메시지를 수신하면 상기 트리 위치 정보 리스트와 위치 정보 리스트를 초기화시키는 인터넷 전화의 부가서비스 로직 결정 시스템.
  5. 제 1 항에 있어서,
    상기 호 처리 서버는, 상기 호 연결 요청 메시지를 수신하면 상기 결과 정보 테이블을 초기화시키는 인터넷 전화의 부가서비스 로직 결정 시스템.
  6. 제 1 항 또는 제 5 항에 있어서,
    상기 결과 정보 테이블은, 7개의 값 중에서 어느 하나를 갖는 액션 타입이 설정되어 있는 인터넷 전화의 부가서비스 로직 결정 시스템.
  7. 제 6 항에 있어서,
    상기 액션 타입은, 상기 호 처리 서버의 서비스 로직 검색 결과 상기 수신자가 등록한 서비스 로직이 존재하지 않은 경우에“1”을 갖는 인터넷 전화의 부가서비스 로직 결정 시스템.
  8. 제 6 항에 있어서,
    상기 액션 타입은, 상기 호 처리 서버의 서비스 로직 분석 결과 상기 수신자가 등록한 서비스 로직이 존재하지만 호 설정을 위한 부가서비스 로직이 아닌 경우에 “2”를 갖는 인터넷 전화의 부가서비스 로직 결정 시스템.
  9. 제 6 항에 있어서,
    상기 액션 타입은, 상기 호 처리 서버의 서비스 로직 분석 결과 상기 수신자의 등록한 위치 정보로 호를 설정할 필요가 있는 경우에 “3”의 값을 갖는 인터넷 전화의 부가서비스 로직 결정 시스템.
  10. 제 6 항에 있어서,
    상기 액션 타입은, 상기 호 처리 서버의 서비스 로직 분석 결과 상기 수신자가 등록한 위치 정보로 호 설정이 필요하나 상기 송신자로 수신자가 등록한 위치 정보를 송신해줘야 하는 경우에 “4”의 값을 갖는 인터넷 전화의 부가서비스 로직 결정 시스템.
  11. 제 6 항에 있어서,
    상기 액션 타입은, 상기 호 처리 서버의 서비스 로직 분석 결과 상기 수신자가 호 연결을 거부하는 경우에 “5”의 값을 갖는 인터넷 전화의 부가서비스 로직 결정 시스템.
  12. 제 6 항에 있어서,
    상기 액션 타입은, 상기 호 처리 서버의 서비스 로직 분석 결과 상기 수신자가 전자 메일 서비스를 요청한 경우에 “6”의 값을 갖는 인터넷 전화의 부가서비스 로직 결정 시스템.
  13. 제 6 항에 있어서,
    상기 액션 타입은, 상기 호 처리 서버의 서비스 로직 분석 결과 상기 수신자가 로그 파일 기록을 요청한 경우에 “7”의 값을 갖는 인터넷 전화의 부가서비스 로직 결정 시스템.
  14. 인터넷 전화 시스템의 부가서비스 제공 방법에 있어서,
    송신자로부터 임의의 수신자와의 호 연결 요청 메시지를 수신하는 단계와,
    상기 호 연결 요청 메시지에 따라 결과 정보 테이블, 위치 정보 리스트 및 트리 위치 정보 리스트를 초기화시키고, 상기 메시지에 포함된 수신자 주소를 트리 위치 정보 리스트에 추가시키는 단계와,
    상기 호 연결 요청 메시지에 포함된 수신자 주소 정보에 대응되는 서비스 로직이 존재하는지의 여부를 판단하는 단계와,
    상기 판단 결과, 상기 서비스 로직이 존재하는 경우에, 상기 검색된 서비스 로직 중에서 수신 부분만을 추출하는 단계와,
    상기 수신 부분의 서비스 로직을 반복적으로 분석하여 결과 정보 테이블을 생성하는 단계와,
    상기 결과 정보 테이블을 토대로 상기 송신자와 수신자간의 호 연결하거나 상기 송신지의 호 연결을 차단시키거나 상기 송신자에게 수신자의 변경된 위치 정보를 포함한 메시지를 송신하는 단계를 포함하는 인터넷 전화 부가 서비스 제공 방법.
  15. 제 14 항에 있어서,
    상기 결과 정보 테이블은, 상기 결과 정보 테이블은, 7개의 값 중에서 어느 하나를 갖는 액션 타입이 설정되어 있는 인터넷 전화의 부가서비스 로직 결정 방법.
  16. 제 15 항에 있어서,
    상기 액션 타입에는, 포워딩 정보, 송신자에게 포워딩 정보, 거절 정보, 메일 정보 로그 정보, 등록된 서비스 로직의 유무를 나타내는 정보들로 구성되는 인터넷 전화의 부가서비스 로직 결정 방법.
  17. 제 14 항에 있어서,
    상기 서비스 로직을 분석하는 단계는,
    상기 수신 부분의 라인을 읽어드려 분석한 결과 상기 서비스 로직을 닫는 경우인지를 판단하는 단계와,
    상기 판단 결과, 상기 서비스 로직을 닫는 경우가 아닐 때 상기 라인의 로직이 “Address-switch”, “String-switch”,“Time-switch”,“Language-switch”및“Prioty-switch”로 이루어진 제 1 조건들 중 하나인지 여부를 판단하는 단계와,
    상기 판단 결과, 상기 제 1 조건들 중 하나인 경우에 상기 로직의 라인이 상기 하나의 조건에 만족하는지의 여부를 판단하는 단계를 더 포함하는 인터넷 전화의 부가서비스 로직 결정 방법.
  18. 제 16 항에 있어서,
    상기 라인이 상기 제 1 조건들 중 하나에 포함되지 않은 경우에, 상기 라인의 로직이 “location”,“remove-location” 및 “lookup”으로 이루어진 제 2 조건들 중 하나인지의 여부를 판단하는 단계를 더 포함하는 인터넷 전화의 부가서비스 로직 결정 방법.
  19. 제 18 항에 있어서,
    상기 라인의 로직이 “location”인 경우에, 상기 라인의 다음 라인에 포함된 정보를 저장하는 단계와,
    상기 “location”에 포함된 위치 정보를 상기 수신자 주소의 하위 노드로 추가시키는 단계와,
    상기 “location”에 포함된 위치 정보에 대응되는 사용자기 등록한 서비스 로직이 존재하는지의 여부를 판단하는 단계를 포함하는 인터넷 전화의 부가서비스 로직 결정 방법.
  20. 제 18 항에 있어서,
    상기 라인의 로직이 “remove-location”인 경우에, 상기“remove-location”에 포함된 위치 정보를 위치 정보 리스트에서 삭제시키고, 상기 “remove-location” 부분을 분석하지 않는 인터넷 전화의 부가서비스 로직 결정 방법.
  21. 제 18 항에 있어서,
    상기 라인의 로직이 “lookup”인 경우에, 상기 “lookup”에 해당되는 위치 정보가 데이터베이스에 저장되어 있는지의 여부를 판단하는 단계를 포함하는 인터넷 전화의 부가서비스 로직 결정 방법.
  22. 제 18 항에 있어서,
    상기 라인의 로직이 상기 제 2 조건들 중 하나에 포함되지 않은 경우에, 상기 라인 로직이 “proxy”, “redirect”, “reject”, “mail” 및 “log”들 중 하나인지의 여부를 판단하는 단계를 포함하는 인터넷 전화의 부가서비스 로직 결정 방법.
  23. 제 22 항에 있어서,
    상기 라인의 로직이 “proxy”또는“redirect”또는 인 경우에, 상기 위치 정보 리스트에 저장된 모든 주소 정보를 상기 결과 정보 테이블의 포워딩 정보 중에서 사용자 위치 정보를 셋팅한 후에 상기 위치 정보 리스트를 초기화시키는 인터넷 전화의 부가서비스 로직 결정 방법.
  24. 제 22 항에 있어서,
    상기 라인의 로직이 “reject”인 경우에, 상기 라인에 있는 데이터를 이용하여 상기 결과 정보 테이블에 거절 정보 이유를 셋팅하는 인터넷 전화의 부가서비스 로직 결정 방법.
  25. 제 22 항에 있어서,
    상기 라인의 로직이 “mail”인 경우에, 상기 라인에 포함된 메일 데이터를 이용하여 상기 결과 정보 리스트의 메일 정보 메일 주소를 셋팅하는 인터넷 전화의 부가서비스 로직 결정 방법.
  26. 제 22 항에 있어서,
    상기 라인의 로직이 “log”인 경우에, 상기 결과 정보 리스트에 로그 정보의 로그 스트링을 셋팅하는 인터넷 전화의 부가서비스 로직 결정 방법.
  27. 제 17 항에 있어서,
    상기 판단 결과, 상기 제 1 조건의 만족여부에 따라 상기 조건 만족 여부의 값을 “0” 또는 “1”로 셋팅하는 단계를 포함하는 인터넷 전화의 부가서비스 로직 결정 방법.
  28. 제 16 항에 있어서,
    상기 서비스 로직을 닫는 경우인지를 판단한 결과 상기 라인이 로직을 닫는 정보를 갖고 있는 경우에, 상기 라인의 정보가 “</cpl>”인지의 여부를 판단하는 단계를 포함하는 인터넷 전화의 부가서비스 로직 결정 방법
  29. 제 28 항에 있어서,
    상기 판단 결과, 상기 라인의 정보가“</cpl>”인 경우에 상기 트리 위치 정보 리스트에서 현재 분석 중인 위치 정보에 상위 노드가 존재하는지의 여부를 판단하는 단계와,
    상기 상위 노드가 존재하는지의 여부를 판단한 결과, 상기 상위 노드가 존재할 때 상위 노드에 대응되는 서비스 로직을 분석하는 단계와,
    상기 상위 노드가 존재하지 않은 경우에, 상기 결과 정보 테이블의 액션 타입을 서비스 로직이 없음으로 셋팅하는 단계를 포함하는 인터넷 전화의 부가서비스 로직 결정 방법.
KR10-2002-0083633A 2002-12-24 2002-12-24 인터넷 전화의 부가서비스 로직 결정 시스템 및 방법 KR100498756B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2002-0083633A KR100498756B1 (ko) 2002-12-24 2002-12-24 인터넷 전화의 부가서비스 로직 결정 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0083633A KR100498756B1 (ko) 2002-12-24 2002-12-24 인터넷 전화의 부가서비스 로직 결정 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20040057176A KR20040057176A (ko) 2004-07-02
KR100498756B1 true KR100498756B1 (ko) 2005-07-01

Family

ID=37349776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0083633A KR100498756B1 (ko) 2002-12-24 2002-12-24 인터넷 전화의 부가서비스 로직 결정 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100498756B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014208998A1 (ko) * 2013-06-24 2014-12-31 (주)어가람닷컴 인터넷전화를 활용한 컨텍트센터 구축에 필요한 전화정보의 추출시스템과 그 방법

Also Published As

Publication number Publication date
KR20040057176A (ko) 2004-07-02

Similar Documents

Publication Publication Date Title
US8078153B2 (en) System and method for dynamic provisioning of contextual-based identities
US7697924B2 (en) Method and apparatus for cost optimization of cellular networks indication
US20050069095A1 (en) Search capabilities for voicemail messages
US8494134B2 (en) Method and system for routing calls placed to a telephony identifier associated with a group of identities
KR20060034233A (ko) 서비스를 제공하는 시스템 및 방법
JP5247433B2 (ja) 秘密ルーティング制御番号
EP1312236B1 (en) Mobile radio communication system and method for broadcasting messages to registered groups
KR20120040231A (ko) 인스턴트 메시징 서비스와 단문 메시지 서비스 간의 연동을 위한 방법 및 시스템
KR100455864B1 (ko) 발신자 확인을 위한 캐릭터 및 문자 전송 서비스 시스템
KR100498756B1 (ko) 인터넷 전화의 부가서비스 로직 결정 시스템 및 방법
KR100361021B1 (ko) 객체명을 사용한 통신 접속 시스템 및 방법
US7840212B2 (en) Method and apparatus for presence indication of cellular telephones
KR101127866B1 (ko) 메시지의 수신인과 연관된 사용자 주소의 채용을 통해 메시지의 송신인에게 서비스 제공자의 식별자를 제공
KR20190053297A (ko) 향상된 자동 발신자 식별 해석
KR100834802B1 (ko) 메시지 그룹전송 시스템 및 방법
KR101073575B1 (ko) 이넘 정보가 포함된 메시지 전송 방법
KR100601850B1 (ko) 모바일 도메인 번호 서비스를 제공하는 이동 통신 시스템및 모바일 도메인을 이용한 호 처리 방법
KR100794181B1 (ko) 음성 메시지 제공 장치 및 이를 이용한 음성 메시지 서비스제공 방법
KR100990361B1 (ko) 메시지 전송 시스템
KR100974501B1 (ko) 국제 문자메시지 착신 처리 방법 및 그 시스템
KR101083532B1 (ko) 통화 연결음 업데이트 방법 및 시스템
KR100775319B1 (ko) 음원 전송 방법 및 시스템
KR100532911B1 (ko) 착신자 설정 메시지 제공 방법 및 장치
EP1271987A2 (en) A name server for positioning objects
KR20090018697A (ko) 메시지 전송 또는 호연결 시스템

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: 20110609

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee