KR20050111361A - 세션 개시 프로토콜-가능 단말기에 다중-클라이언트 지원을제공하기 위한 방법 및 장치 - Google Patents

세션 개시 프로토콜-가능 단말기에 다중-클라이언트 지원을제공하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20050111361A
KR20050111361A KR1020057017291A KR20057017291A KR20050111361A KR 20050111361 A KR20050111361 A KR 20050111361A KR 1020057017291 A KR1020057017291 A KR 1020057017291A KR 20057017291 A KR20057017291 A KR 20057017291A KR 20050111361 A KR20050111361 A KR 20050111361A
Authority
KR
South Korea
Prior art keywords
sip
message
client
destination client
capabilities
Prior art date
Application number
KR1020057017291A
Other languages
English (en)
Other versions
KR100686705B1 (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 노키아 코포레이션
Publication of KR20050111361A publication Critical patent/KR20050111361A/ko
Application granted granted Critical
Publication of KR100686705B1 publication Critical patent/KR100686705B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/08Upper layer protocols
    • H04W80/10Upper layer protocols adapted for application session management, e.g. SIP [Session Initiation Protocol]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

SIP-가능 단말기에서 다중-클라이언트 지원을 제공하기 위한 방법 및 장치는 단말기(200)상에 SIP 처리 스택(206)을 제공하는 것을 포함한다. 클라이언트들(210)은 상기 SIP 처리 스택(206)에 접속하여 클라이언트 능력들을 전달하고 SIP 메시지들을 처리한다. 상기 SIP 처리 스택(206)은 SIP 메시지들을 송신하고 수신한다. 들어오는 SIP 메시지들은 상기 SIP 메시지내의 클라이언트 능력들 및 데이터를 참조함으로써 적합한 클라이언트(210)로 송신된다.

Description

세션 개시 프로토콜-가능 단말기에 다중-클라이언트 지원을 제공하기 위한 방법 및 장치{Method and apparatus for providing multi-client support in a SIP-enabled terminal}
본 발명은 일반적으로 컴퓨팅 및 통신 장치들에 관한 것으로, 특히 다중-클라이언트 구성에서 세션 개시 프로토콜 또는 유사한 프로토콜을 사용하기 위한 방법 및 장치에 관한 것이다.
개인용 통신 장치들은 대중에 더 널리 채택되어 가고 있다. 셀룰러 전화들, 개인 휴대 정보 단말기 및 랩톱 컴퓨터들과 같은 개인용 통신 장치들은 사용자들에게 다양한 이동 통신들 및 컴퓨터 네트워크 능력들을 제공한다. 상기 장치들은 음성, 음악, 비디오, 텍스트 메시징 등을 포함하여, 매우 다양한 디지털 멀티미디어 포맷들을 사용하여 점점 더 통신할 수 있다.
이동 장치 및 다른 컴퓨팅 장치들에 디지털 멀티미디어를 제공하는 것을 허용한 하나의 중요한 표준은 세션 개시 프로토콜(SIP: Session Initiation Protocol)이다. SIP는 종단 대 종단 멀티미디어 세션들을 설정하는데 있어서 디지털 장치들을 보조하는 시그널링 프로토콜이다. SIP는 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP) 및 하이퍼텍스트 전송 프로토콜(HTTP: Hypertext Transfer Protocol)과 같은 인터넷 프로토콜들 뿐만 아니라 일반 전화 교환망(PSTN: Public Switch Telephone Network)에 의해 제공되는 특징들과 유사한 특징들을 제공한다.
SIP는 잘 알려져 있는 네트워크 포트를 통해 동작하는 텍스트-기반 메시지 프로토콜이라는 점에서 HTTP와 유사하게 동작한다. 단말기의 관점에서, SIP는 상기 단말기가 들어오는 통신들에 대해 통지받도록 리스닝(listening) 프로세스를 가져야 하기 때문에 HTTP와는 상이하다. 대조적으로, HTTP를 사용하는 웹 브라우저는 순전히 클라이언트이다-상기 브라우저들은 사용자 요구시 리스닝 서버들에 대한 접속들을 개시하고, 들어오는 접속들에 대해 경청하지 않는다.
이동 전화들 및 개인 휴대 정보 단말기(PDA)와 같은 장치들은 더 복잡해지고 있기 때문에, 상기 장치들은 사용자들이 동시에 더 많은 멀티미디어 인식 애플리케이션들을 실행하도록 할 것이다. 상기 애플리케이션들은 상기 SIP 프로토콜을 이용할 것 같다. 그러므로, 각 애플리케이션이 자기 자신의 SIP 프로토콜 스택을 포함할 것이기 때문에 많은 중복성이 존재할 수 있다. 상기 장치상의 잘 알려져 있는 TCP/IP 리스닝 포트들에 대한 경합이 존재할 수 있기 때문에, 다수의 SIP 인식 애플리케이션들을 가지는 것은 사용자들의 일부에 대해 혼동을 야기할 수 있다. 상기 경합은 에러들을 초래할 수 있고 사용자들이 특히 소프트웨어를 동시에 동작시키도록 구성하는 요건을 초래할 수 있다. 이것은 사용자들이 일반적으로 TCP/IP 포트들과 같은 개념들을 이해하지 못하기 때문에 불리하고, (HTTP 또는 텔넷에 대한 것과 같은) 대안적인, 잘 알려져 있는 포트가 SIP를 수신하기 위하여 사용자에 의해 선택되는 경우 문제를 야기할 수 있다.
필요한 것은 통신 장치상의 다수의 클라이언트 애플리케이션들에 SIP 기능을 제공하는 방법이다. 본 발명은 상기 필요 및 다른 필요들을 해결하고, 종래 기술의 접근들을 능가하는 다른 이점들을 제공한다.
도 1은 본 발명의 원리들이 사용될 수 있는 대표적인 시스템 환경을 도시한 것이다.
도 2는 본 발명의 실시예에 의한 SIP 처리 스택 및 클라이언트 애플리케이션들의 구성을 도시한 도면이다.
도 3은 본 발명의 실시예에 의한 SIP 스택을 사용하는 초기화 시퀀스들을 도시한 메시지 흐름도이다.
도 4는 본 발명의 실시예에 의한 SIP 클라이언트 선택을 도시한 흐름도이다.
도 5는 본 발명의 실시예에 따라 SIP 클라이언트들을 선택하기 위한 추가 처리를 도시한 흐름도이다.
상술된 종래 기술에서의 제한들을 극복하기 위하여 그리고 본 명세서를 읽고 이해할 때 명백해질 다른 제한들을 극복하기 위하여, 본 발명은 다중-클라이언트 환경에서 세션 설정 절차를 처리하기 위한 방법 및 장치를 개시한다. 일 실시예에서, 세션 설정 처리의 컴퓨터 구현된 방법은 복수의 클라이언트들 각각의 클라이언트 능력을 메시지 처리 스택으로 전달하는 것을 포함한다. 메시지는 네트워크 인터페이스로부터 상기 메시지 처리 스택에서 수신된다. 수신지 클라이언트는 상기 메시지 및 상기 클라이언트 능력들에 기초하여 상기 복수의 클라이언트들로부터 결정된다. 그다음 상기 메시지는 상기 메시지 처리 스택으로부터 상기 수신지 클라이언트로 전달된다.
일 구성에서 상기 세션 설정 절차는 세션 개시 프로토콜(SIP)을 포함한다. 상기 메시지 처리 스택은 상기 수신지 클라이언트가 실행되고 있지 않은 경우 상기 수신지 클라이언트를 기동시키도록 구성될 수 있다. 상기 클라이언트 능력들은 클라이언트가 일찍이 상주된 지속 저장 장치내의 서술을 검사함으로써 상기 메시지 처리 스택으로 전달될 수 있거나, 실행 시간에 상기 클라이언트들로부터 결정될 수 있다. 상기 메시지 처리 스택은 SIP 메시지 요구 라인, 하나 이상의 SIP 메시지 헤더들 및 상기 메시지의 본체를 검사함으로써 상기 수신지 클라이언트를 결정할 수 있다. 상기 본체는 SDP 헤더들로 구성될 수 있다.
본 발명의 다른 실시예에서, 데이터 처리 장치상에서 SIP 메시지를 처리하는 방법은 상기 데이터 처리 장치의 SIP 처리 스택에서 상기 SIP 메시지를 수신하는 것을 포함한다. 상기 SIP 처리 스택은 상기 데이터 처리 장치의 네트워크 인터페이스의 사전-결정된 포트와 관련된다. 상기 데이터 처리 장치의 수신지 클라이언트 애플리케이션은 상기 SIP 메시지의 데이터에 기초하여 선택된다. SIP 응답 메시지는 상기 수신지 클라이언트 애플리케이션을 선택하는 것이 성공적이었는지에 기초하여 상기 SIP 처리 스택으로부터 상기 네트워크 인터페이스로 송신된다. 상기 SIP 메시지는 상기 SIP 처리 스택으로부터 상기 수신지 클라이언트 애플리케이션으로 전달된다.
본 발명의 다른 실시예에 의하면, 네트워크와 인터페이스하도록 구성된 장치가 제공된다. 상기 장치는 상기 네트워크로부터 세션 설정 메시지를 수신하도록 구성된 네트워크 인터페이스 및 복수의 클라이언트 애플리케이션들에 대한 클라이언트 능력들을 저장하기 위한 데이터 저장 장치를 포함한다. 상기 장치는 상기 네트워크 인터페이스로부터 상기 세션 설정 메시지를 수신하도록 구성되고, 상기 데이터 저장 장치의 상기 클라이언트 능력들 및 상기 세션 설정 메시지에 기초하여 상기 복수의 클라이언트 애플리케이션들로부터 수신지 클라이언트 애플리케이션을 식별하도록 구성되며, 상기 세션 설정 메시지를 상기 수신지 클라이언트 애플리케이션에 전달하도록 구성된다.
본 발명의 상기한 요약은 본 발명의 각각의 설명된 실시예 또는 구현을 설명하는 것을 의도하지는 않는다. 이것은 다음에 오는 도면들 및 관련된 논의를 위한 것이다.
본 발명은 아래의 도면들에 도시된 실시예들과 관련하여 설명된다.
예시적인 실시예들의 하기 설명에서, 본 발명의 일부를 형성하고, 본 발명이 실시될 수 있는 다양한 실시예들이 예증으로서 도시된 첨부한 도면들이 참조된다. 본 발명의 범위를 벗어나지 않고 구조적 및 동작적인 변경들이 행해질 수 있기 때문에, 다른 실시예들이 이용될 수 있다는 것은 이해될 것이다.
일반적으로, 본 발명은 세션 설정을 위해 공통된 절차를 사용하는 다수의 클라이언트 애플리케이션들에 대해 공유된 처리 스택을 사용하기 위한 방법 및 장치를 제공한다. 특히 세션들을 설정하는데 사용될 수 있는 하나의 프로토콜은 세션 개시 프로토콜(SIP)이다. 각 클라이언트는 상기 SIP 처리 스택으로 SIP 메시지들을 송신하고 상기 SIP 처리 스택으로부터 SIP 메시지들을 수신하는데 사용되는 접속을 설정한다. 상기 클라이언트들은 또한 그들의 능력들을 상기 SIP 스택으로 전달한다. 상기 SIP 처리 스택은 모든 들어오는 SIP 메시지들을 수신하고 메시지 유형 및 상기 클라이언트 능력들에 기초하여 상기 메시지들을 적합한 클라이언트로 전송한다. 상기 SIP 처리 스택은 또한 나가는 SIP 메시지들을 송신할 수 있을 뿐만 아니라, SIP에 의해 요구되는 다중 요구-응답 교환들을 처리할 수 있다. SIP 처리 스택을 사용하는 것은 상기 클라이언트들을 상기 교환들의 상태 및 타이밍을 처리해야 하는 것으로부터 벗어나게 한다.
SIP와 같은 세션 프로토콜들의 주된 목적은 네트워킹된 장치들간의 종단 대 종단 데이터 통신들에 대한 세션들을 설정하는 것이다. SIP는 또한 이벤트 통지, 인스턴트 메시징 및 프리젠스(presence)와 같은 애플리케이션들에 대해 사용될 수 있다. 상기 종단점들 중 하나 이상은 예를 들어 위치에서 위치로 그리고 네트워크에서 네트워크로 이동하는 모바일일 수 있다. 모바일 종단점들은 모든 방식의 디지털 통신 장치들을 포함한다. 본 발명이 SIP에 관해 설명될지라도, 본 발명에 의한 개념들이 어떤 유형의 세션 설정 절차를 사용하여 구현될 수 있다는 것은 이해되고, IETF에 의해 정의된 바와 같이 SIP의 사용에 관한 설명들은 제한하는 것이 아니라 예증을 위해 제공된다.
일반적으로, 디지털 통신 장치들은 다른 장치들과 데이터를 교환할 수 있는 전자 장치들이다. 데이터는 전자파 또는 광파로서 공기를 통해 또는 와이어, 광 섬유와 같은 다양한 통신 매체를 통해 전송될 수 있다. 점점 더, 통신 장치들은 마이크로프로세서와 같은 어떤 유형의 컴퓨팅 하드웨어를 포함한다. 마이크로프로세서로 제어되는 장치들의 성장은 이동 통신 장치들(셀룰러 전화들, PDA 등)의 분야에서 견실하게 성장하고 있다. 전반적으로, 대부분의 이동 통신 장치들은 마이크로프로세서들을 사용하므로 이동 데이터 처리 장치들로서 간주될 수 있다.
도 1은 본 발명의 원리들이 사용될 수 있는 대표적인 시스템 환경(100)을 도시한 것이다. 상기 대표적인 시스템 환경(100)에서, SIP 메시지들(102)은 어떤 수의 알려져 있는 방법들로 장치들간에 전달될 수 있다. 상기 방법들은 인터넷과 같은 세계 정보망(GAN: Global Area Network), 하나 이상의 광역 네트워크(WAN: Wide Area Network), 근거리 네트워크(LAN: Local Area Network) 등을 포함할 수 있는 지상 통신선 네트워크(들)(104)를 포함한다. SIP 메시지들(102)을 지원하는 어떤 컴퓨팅 장치 또는 다른 전자 장치는 서버들(106), 데스트톱 컴퓨터들(108) 또는 워크스테이션들, 랩톱 또는 다른 휴대용 컴퓨터들(110) 또는 일반 장치(112)로 표시된 바와 같이, 상기 네트워크(104)를 통해 통신할 수 있는 어떤 다른 유사한 컴퓨팅 장치와 같이, 본 발명을 이용하는 타깃 시스템일 수 있다.
상기 데이터(102)는 이동 통신 세계화 시스템(GSM), 범용 이동 통신 시스템(UMTS), 개인 통신 서비스(PCS), 시분할 다중 접속(TDMA), 부호 분할 다중 접속(CDMA) 또는 다른 이동 네트워크 전송 기술과 같은 하나 이상의 무선 네트워크들(114)을 통해 제공될 수 있다. 또한, SIP를 사용하여 통신하는데 사용될 수 있는 어떤 이동 전자 장치도 랩톱 또는 다른 휴대용 컴퓨터들(116), 이동 전화들(118A) 및 다른 이동 커뮤니케이터들, 개인 휴대 정보 단말기들(PDA)(120) 또는 일반 장치(122)로 표시되는 바와 같이, 무선 네트워크(114)를 통해 통신할 수 있는 어떤 다른 유사한 컴퓨팅 장치와 같이, 본 발명에 의한 개념들을 이용하는 타깃 시스템과 인터페이스할 수 있다.
상기 SIP 메시지(102)는 블루투스, 무선 근거리 네트워크(WLAN: Wireless Local Area Network), 적외선(IR) 등과 같은, 단거리 무선 기술들(124)을 사용하여 장치들간에 전송될 수 있다. 상기 SIP 메시지(102)는 또한 접속 경로(126)로 표시된 바와 같이, 직접 결선 접속들을 사용하여 분배될 수 있다. 본 발명은 상기 SIP 메시지(102)가 상기 타깃 장치들간에 제공되거나 분배되는 방법에 상관없이 적용가능하다.
본 발명에 의한 개념들을 이용하는 타깃 장치의 예는 이동 전화(118B)로서 도시된다. 상기 장치(118B)는 예를 들어, 무선 송수신기(134) 및 운영 체제(OS)(130)에 연결된 (프로세서를 포함하는) 하드웨어를 포함한다. 본 발명은 펌웨어, 모듈 또는 상기 OS(130)상에서 실행되는 프로그램으로서 구현되는 SIP 처리 스택(132)을 포함할 수 있다.
이제 도 2를 참조하면, 본 발명의 개념들을 설명하는 예시적인 통신 장치(200)가 도시된다. 상기 통신 장치(200)는 네트워크(204)와 통신하기 위한 네트워크 인터페이스(202)를 포함한다. 상기 네트워크(204)는 어떤 유형의 디지털 통신 네트워크일 수 있다. 본 예에서 상기 네트워크(204)는 전형적으로 상기 네트워크(204)상에 하나 이상의 SIP 서버들(220) 및 클라이언트들(222, 224, 226)을 구비함으로써 어떤 방식의 SIP 서비스들을 제공한다.
상기 SIP 명세의 현재의 버전은 2002년 6월자, 인터넷 엔지니어링 태스크 포스(IETF: Internet Engineering Task Force) RFC 3261에 정의된다. RFC 3261은 본 발명의 실시예들에 의한 통신 장치에 의해 사용될 수 있는 동작 및 데이터 포맷들을 정의한다. 상기 SIP 명세는 하나 이상의 참가자들과 세션들을 생성하고, 변경하며 종료하기 위한 프로토콜들을 포함한다. SIP는 또한 이벤트 통지, 인스턴스 메시징 및 프리젠스와 같은 애플리케이션들에 대해 사용될 수 있다. SIP는 네트워킹된 데이터 처리 장치들과 사용되도록 설계된다; 그러므로 본 발명에 의한 장치(200)는 네트워크 인터페이스(202)를 통해 SIP 통신들을 처리할 것이다.
상기 네트워크 인터페이스(202)는 다른 네트워킹된 장치들과의 통신들을 허용하는 어떤 물리적 또는 논리적 인터페이스일 수 있다. 네트워크 인터페이스들은 일반적으로 국제 표준화 기구(ISO: International Standards Organization) 네트워킹 프로토콜 스택의 네트워크 계층에서 인터넷 프로토콜(IP: Internet Protocol)을 사용한다. 전형적으로 IP와 연결된 것은 OSI 스택의 전송 계층에 있는 전송 제어 프로토콜(TCP: Transmission Control Protocol) 또는 사용자 데이터그램 프로토콜(UDP: User Datagram Protocol)이다. 하지만, 상기 SIP 명세는 어떤 유형의 네트워킹 프로토콜들과도 독립적이고, 당 기술 분야에 알려져 있는 다양한 다른 네트워크 기술들과 함께 사용될 수 있다.
상기 통신 장치(200)는 상기 네트워크 인터페이스(202)를 통해 상기 네트워크(204)와 통신하는 (또한 여기에서 "SIP 스택"으로 지칭되는) SIP 처리 스택(206)을 포함한다. 상기 SIP 스택(206)은 상기 통신 장치(200)에 대한 모든 SIP 통신들을 처리하도록 구성될 수 있다.
상기 SIP 스택(206)은 또한 상기 통신 장치(200)상의 클라이언트들(210)과 통신한다. 클라이언트들(210)(또한 "클라이언트 애플리케이션들"로 알려짐)은 전형적으로 상기 통신 장치(200)상에서 실행되고 있는 애플리케이션들이다. 클라이언트들(210)은 특히, 데이터를 포맷하고 사용자들에게 데이터를 제공하는 것을 처리한다. 클라이언트(210)는 음성/비디오 통신, 텍스트 메시징, 웹 서비스 등과 같은 태스크들을 처리하는 프로그램을 포함할 수 있다.
상기 SIP 스택(200)은 상기 통신 장치(200)상에서 실행될 필요가 없는 외부 클라이언트(212)와 통신하도록 구성될 수 있다. 상기 외부 클라이언트(212)는 플러그-인 주변 장치들에 의해 사용되는 바와 같은, 네트워크 인터페이스 또는 데이터 I/O 버스를 통해 상기 통신 장치(200)에 접속될 수 있다. 이러한 주변 장치들은 스마트 카드들, PC 카드들, 램/롬 모듈들, 디스크 드라이브들과 같은 저장 장치들을 포함할 수 있다. 전화들, PDA들, 컴퓨터들 등과 같은 자율적인 장치들은 외부 클라이언트(212)를 상기 SIP 스택(206)과 인터페이스시키기 위하여 네트워크를 통해 또는 주변 장치들로서 상기 통신 장치(200)에 부착될 수 있다.
클라이언트들(210, 212) 및 상기 SIP 처리 스택(206)간의 통신을 위해 당 기술 분야에 알려져 있는 다양한 기술들이 사용될 수 있다. 상기 SIP 처리 스택(206) 및 클라이언트들(210, 212)은 개별적으로 실행되는 프로세스들일 수 있다. 또한 하나 이상의 클라이언트들이 경량 프로세스들(LWP: Light Weight Processes) 또는 스레드들을 사용함으로써 서로 또는 상기 SIP 스택(206)과 단일 프로세스에서 실행되는 것이 가능하다. 본 발명에 의한 장치(200)는 개별 프로세스들 및/또는 프로세스들내의 실행 스레드들의 어떤 조합을 사용할 수 있다. 클라이언트 프로세스들 또는 스레드들간의 통신은 프로세스간 통신(IPC: Inter-Process Communications)을 통해 달성될 수 있다.
IPC 메커니즘들은 개별 프로세스들이 상호작용하도록 한다. 이러한 상호작용은 동기 또는 비동기될 수 있다. 네트워크 소켓들, 공유 메모리, 신호들, 세마포어(semaphores), 파이프, 메시징 등과 같은 컴퓨터 구조들은 IPC를 용이하게 하는 다양한 방법들 및 메커니즘들을 제공한다. 자바 RMI, 코바(CORBA), COM/DCOM, 원격 절차 호출(RPC: Remote Procedure Calls) 등을 포함하여, 다양한 표준 IPC 프로토콜들이 당 기술 분야에 알려져 있다. 다양한 운영 체제들 및 개발 환경들은 이동 장치들에 대한 심비안(Symbian) 운영 체제내의 IPC와 같은 특정 IPC 특징들을 제공한다.
IPC 프로토콜들은 프로그래머들이 함수 호출들을 행함으로써 원격 프로세스들에 대한 방법들을 투과적으로 호출하도록 종종 허용한다. 상기 프로세스들은 다른 IPC 인식 프로세스들에 의해 사용가능한 애플리케이션 프로그램 인터페이스(API: Application Program Interface) 방법들을 정의할 수 있다. 이들 API 방법들은 이벤트 개시, 데이터 전송, 조회 처리 등에 사용될 수 있다. 도 2를 참조하면, 클라이언트들(210, 212) 및 SIP 스택(206)은 미리 정의된 API 방법들을 사용하여 SIP와 관련된 데이터를 교환할 수 있다.
클라이언트들(210, 212)과 상기 SIP 스택(206)간에 교환되는 한 유형의 데이터는 클라이언트 능력들(capabilities)이다. 상기 능력들은 들어오는 SIP 메시지들을 수신하기 위한 수신지 클라이언트를 결정하기 위하여 상기 SIP 스택(206)에 의해 사용될 수 있다. 상기 능력들은 상기 클라이언트들(210, 212)로부터 실행 시간에 상기 SIP 스택(206)으로 전달될 수 있다. 상기 능력들은 또한 상기 SIP 스택(206)에 의해 언제나 검색을 위해 지속 저장 장치(215)에 배치될 수 있다.
상기 SIP 스택(206)은 또한 상기 장치(200)에 의해 통합된 운영 체제에 특정한 다양한 메커니즘들을 사용하여 클라이언트들(210, 212)을 기동시키고 중단시키는데 사용될 수 있다. 예를 들어, 많은 라이브러리들은 fork() 및 exec()의 표준 C 언어 절차들의 구현들을 제공한다. 클라이언트들(210, 212)을 기동시키는 다른 방법들은 실행가능한 파일 또는 배치 파일을 기동시키기 위하여 상기 운영 체제에 대한 시스템 호출들을 호출하는 것을 포함할 수 있다. 클라이언트들은 또한 kill()과 같은 C 함수의 사용에 의해 또는 시스템 호출들을 행함으로써 중단될 수 있다. 클라이언트들(210, 212)의 자동 기동 및 중단은 유리하게는 상기 장치가 현재의 통신 세션들에 필요한 클라이언트들만을 실행시킴으로써 메모리 및 프로세싱 사이클들을 보존하도록 허용한다.
클라이언트들(210, 212)이 통신중 사용된 데이터 전송을 수행하기 위하여 그들 자신의 네트워크 접속들(미도시)을 포함할 수 있다는 것은 이해된다. SIP는 데이터 경로 정의, 사용자 가용성 및 세션의 양 종단들에서 지원되는 허용가능한 데이터 유형들과 같은 세션-지향 매개 변수들을 제공하기 위하여, 세션 서술 프로토콜(SDP: Session Description Protocol)과 같은, 다른 프로토코들과 함께 사용된다. SIP 및 SDP(또는 유사한 프로토콜들)가 상기 세션을 설정한 후, 사용자들에 데이터를 전송하고 데이터를 제공하는 기능들을 수행하는 것은 클라이언트들(210, 212)에 달려 있다.
이제 도 3을 참조하면, 세션이 SIP 스택(304)과 클라이언트들(306, 308)간에 설정될 수 있는 방법의 예가 도시되어 있다. 네트워크 인터페이스(302)는 상기 SIP 스택(304)과 클라이언트들(306, 308)을 SIP 네트워크(미도시)에 접속시킨다. 상기 클라이언트(308)(클라이언트2(Client2))는 우선 그것의 능력들을 상기 SIP 스택(304)에 전달한다(310). 상기 전달(310)은 클라이언트2(Client2)(308)로부터 호출된 예시적인 API 호출, SetSIPCapabilities()로서 도 3에 도시되어 있다. 상기 SIP 스택(304)은 SetClient()라고 불리우는 예시적인 방법을 사용하여, 내부 상태에 상기 클라이언트의 능력들을 부가한다(312). 능력들을 전달하고(314) 클라이언트를 부가하는(316) 유사한 프로세스들은 클라이언트1(Client1)(306)에 대해 반복된다.
상기 클라이언트들(306, 308)과 상기 SIP 스택(304)간에 전달된 능력들은 다양한 IETF RFC들에 정의된 바와 같은 상기 SIP 헤더들의 표준 요소들을 포함할 수 있다. SIP 버전, SIP 방법들, 언어, 부호화, 콘텐트-배치, 미디어 유형, 콘텐트 유형 등과 같이 클라이언트들에 의해 지원되는 잘 알려져 있는 능력들은 상기 SIP 메시지에 내장된다. 시작 라인, 헤더들 및 메시지 본체를 포함하여, 다른 클라이언트 능력들은 상기 SIP 메시지내의 어느 곳에도 내장될 수 있다. 상기 SIP 스택(304)에 의해 사용되는 상기 API는 전형적으로 상기 능력들을 전달하는 융통성있는 방법을 가져서, 상기 API 방법들을 변경하지 않고 미래의 SIP 확장들에 대한 지원을 허용할 것이다.
상기 클라이언트 능력들의 전달(310, 314)은 통신 장치의 동작중 언제나 발생할 수 있다. 한 구성에서, 상기 클라이언트들(306, 308)은 상기 클라이언트들(306, 308)의 설치시 그들의 능력들을 단지 한번 전달할 수 있다. 이러한 유형의 전달은 파일 또는 시스템 레지스트리와 같은 지속 저장부에 데이터를 기입함으로써 달성될 수 있다. 지속 저장부에 액세스함으로써, 상기 SIP 스택(304)은 기동시 현재의 클라이언트 능력들을 발견하고 설정하므로(312, 316), 상기 클라이언트들(306, 308)은 실행될 필요가 없다. 또한 클라이언트들(306, 308)이 실행 시간에 동적으로 부가되고 제거되도록 하는 것이 바람직할 수 있다. 이 시나리오에서, 상기 클라이언트들(306, 308)은 각 클라이언트 기동시 능력들을 전달할 것이고(310, 314) 클라이언트 중단시 상기 능력들을 제거할 것이다.
상기 SIP 스택(304)은 상기 네트워크 인터페이스(302)를 통해 모든 SIP 관련 통신들을 처리하도록 구성될 수 있다. 예를 들어, 등록(REGISTER) 요구(317)는 현재의 시스템 능력들을 SIP 관련 호스트들에 알리기 위하여 상기 SIP 스택(304)에 의해 송신될 수 있다. 상기 SIP 스택(304)을 통해 모든 SIP 통신들을 처리하는 것은 수많은 이점들을 갖는다. 예를 들어, 클라이언트 애플리케이션들의 개발자들은 각 클라이언트에 SIP 스택을 포함하는 것을 처리해야 하는 것으로부터 해방된다. 갱신들 및 수정들은 모든 클라이언트 애플리케이션들을 위해 단지 상기 SIP 스택에 적용될 수 있다. SIP 메시지들에 대한 중앙 처리점을 가지는 것은 또한 네트워크 자원들에 대한 잠재적인 접속을 감소시킨다.
상기 SIP 스택(304)은 들어오는 접속들을 경청(listening)할 뿐만 아니라 SIP를 사용하여 나가는 접속들을 형성하는데 사용될 수 있다. 나가는 접속들은 상기 네트워크를 통해 호스트를 찾고 상기 호스트에 접속하는 것을 포함한다. 들어오는 접속들을 경청하는 것은 접속 시도를 위해 소정 네트워크 포트에서 대기하는 것을 포함한다. 네트워크 포트들의 개념이 TCP/IP 및 UDP/IP를 참조하여 일반적으로 사용될지라도, 여기에서 사용되는 바와 같이 포트의 개념은 전송 계층에서 들어오는 접속들을 고립시키는데 사용되는 어떤 유일한 식별자를 지칭한다. TCP/IP 및 UDP/IP에서 사용되는 경우, 상기 포트들은 상기 프로토콜 헤더들에 내장된 16-비트 부호없는 정수들이다. TCP 및 UDP 포트들은 SIP에 대해 사용되는 5060와 같이 "잘 알려져" 있을 수 있거나 두개 이상의 호스트들에 의한 사용을 위해 사전에 정해진 어떤 다른 번호일 수 있다.
들어오는 접속들을 처리하는 경우, 상기 SIP 스택(304)은 다양한 클라이언트 능력들의 내부 상태를 유지한다. 상기 내부 상태는 SIP OPTIONS 요구와 같은 요구들에 응답하는데 사용될 수 있다. 상기 OPTIONS 요구들은 사용자 장치의 능력들을 조회하기 위하여 상기 SIP 네트워크상의 다른 사용자에 의해 개시될 수 있다. 상기 SIP 스택(304)은 현재 상태의 모든 클라이언트 능력들을 가지고 상기 OPTIONS 요구에 응답하기 위하여 상기 스택의 내부 상태를 사용할 수 있다.
상기 내부 상태는 또한 들어오는 메시지들을 적합한 클라이언트로 보내는데 사용된다. 들어오는 접속의 예는 상기 네트워크 인터페이스(302)로부터 수신된 초대(INVITE) 메시지(318)로 도시된다. 상기 INVITE 메시지는 전형적으로 세션을 개시하기 위한 시도시 상기 네트워크를 통해 SIP-인식 호스트에 의해 송신된다. 상기 SIP 스택(304)은 상기 메시지를 분석하고 상기 INVITE 요구를 처리하는데 필요한 능력들에 가장 적합한 클라이언트를 선택한다(320). 상기 선택(320)은 GetClient()라고 불리우는 예시적인 방법으로 표시된다.
본 예에서, 상기 INVITE 메시지는 API 호출, SIPIncomingMessage()를 통해 클라이언트(306)로 전송된다(322). 상기 "전송"이라는 용어는 상기 메시지가 변경되지 않은 채 송신된다는 것으로 해석되는 것을 종종 의미할지라도, 이와 관련하여 "전송"은 실질적인 데이터가 클라이언트들과 SIP 스택(304)간에 전달됨을 나타내는 것을 의미한다. API를 사용하는 경우, SIP 메시지에 포함된 데이터의 어떤 부분들이 상기 API를 준수하도록 변경될 수 있다는 것은 이해된다. 일반적으로, SIP 메시지들을 전송하거나 전달하는 것은 변경되지 않은 채 상기 메시지를 송신하는 것을 포함할 수 있는, 상기 API 또는 다른 IPC 구성에 의해 요구되는 SIP 데이터를 전달하는 것을 포함한다.
상기 SIP 스택(304)은 상기 INVITE 메시지에 응답하여 "100 시도(Trying)"(324)와 "180 링잉(Ringing)"(326)을 송신하는 것과 같은 SIP 프로토콜의 다양한 응답들을 처리할 수 있다. 클라이언트(306)가 상기 세션을 설정할 준비가 된 경우, 상기 클라이언트는 이것을 SIPSession()과 같은 API 호출을 사용하여 상기 SIP 스택(304)에 전달한다(328). 상기 SIPSession() 호출은 상기 SIP 스택(304)에 대한 SIP 세션들의 설정, 변경 및 종료를 전달하는데 사용될 수 있다.
상기 SIP 스택(304)에게 상기 세션이 설정될 것이라고 통지된 후, 요구되는 OK 응답(330) 및 긍정 응답(332) 응답들은 상기 교환을 완료하기 위하여 상기 SIP 스택(304)에 의해 송신될 수 있다. 이 시점에, 클라이언트(306)는 상기 네트워크 인터페이스(302)를 통해 미디어 세션을 설정한다(334). 다른 INVITE 요구(336) 처리, 상기 클라이언트 선택(338) 및 메시지 전송(340)으로 도시된 바와 같이, 다른 미디어 세션들이 클라이언트2(Client2)(308)와 설정될 수 있다.
이전에 설명된 바와 같이, 상기 SIP 스택(304)은 들어오는 SIP 메시지들을 처리할 것이고 적합한 클라이언트로 상기 메시지들을 전송할 것이다. 상기 SIP 스택(304)은 시작 라인 및 헤더를 포함하여, 상기 SIP 메시지들의 다양한 부분들을 참조할 수 있다. 또한, 상기 SIP 메시지 본체는 상기 SIP 메시지에 대한 적합한 클라이언트들을 결정하기 위하여 상기 SIP 스택(304)에 의해 검사될 수 있는 (SDP 헤더들과 같은) 데이터를 포함할 수 있다. 다른 예에서, 상기 본체는 상기 세션 데이터를 분류하기 위한 개요(schema)를 제공하는 확장가능 마크업 언어(XML: Extensible Markup Language) 태그들을 포함할 수 있다. SIP 메시지에 대한 적합한 수신지 클라이언트를 결정하는 경우 SIP 메시지 헤더들, 시작 라인들 및 메시지 본체의 어떤 조합도 상기 SIP 스택(304)에 의해 사용될 수 있다.
도 4 및 도 5는 상기 프로세싱의 부분이 발생할 수 있는 방법에 대한 예를 도시한 것이다. 도 4는 도 3에서 GetClient() 절차(320)에 도시된 바와 같이, 메시지를 수신하기 위한 적합한 클라이언트를 결정하기 위한 다양한 SIP 메시지 시작 라인 및 헤더 값들의 분석을 도시한 흐름도이다. 상기 절차는 SIP 메시지 및 모든 클라이언트들과 관련된 능력들의 목록에서 시작된다(402). 상기 SIP 버전이 검사되고(404) 어떤 클라이언트들도 상기 버전을 지원하지 않는 경우, 상기 클라이언트들은 상기 목록에서 삭제된다(406). 상기 프로세스는 SIP 방법들, SIP 확장들, 언어 등과 같은 다양한 클라이언트 능력들을 검사함으로써 상기 절차의 나머지 부분(408)에 대해 반복된다. 상기 테스트된 능력을 지원하지 않는 어떤 클라이언트들도 상기 목록에서 삭제된다. 마지막으로, 상기 콘텐트 유형이 테스트되고(410) 유형 SDP가 아닌 경우, 상기 메시지는 상기 클라이언트로 전송될 수 있다. 상기 메시지를 전송하기 위하여, 상기 목록은 어떤 클라이언트들이 유지되는지를 알기 위해 우선 검사된다(412). 그러한 경우, 상기 메시지는 상기 클라이언트로 전송되고(414), 그렇지 않으면 에러 메시지가 상기 네트워크로 되돌려 송신된다(416). 상기 콘텐트 유형이 검사되고 유형 SDP라는 것이 밝혀지는 경우(410), 추가 프로세싱(412)이 요구된다.
도 5는 도 4에 표시된 계속된 프로세싱(412)을 도시한 흐름도이다. 도 4에서의 흐름도에서와 같이, 절차(502)는 SDP 버전, 네트워크 유형, 주소 유형, 대역폭 변경자들, 암호화, 미디어, 전송 등과 같이 상기 SDP 헤더들내의 다양한 필드들을 테스트하는 것을 포함한다. 상기 SDP 헤더들에 표시된 능력들을 지원하지 않는 상기 목록내의 어떤 클라이언트들도 삭제된다. "while" 루프(504)는 부호화 이름, 화이트보드 오리엔테이션, 회의 유형, 문자 세트, SDP 언어, ftmp 속성 등과 같이, 상기 SDP 헤더의 다양한 속성 라인들을 유사하게 테스트하는 것을 진행한다. 또한, 상기 능력들을 지원하지 않는 상기 목록내의 어떤 클라이언트들도 삭제된다. 상기 "while" 루프(504)에서의 처리 이후에, 상기 클라이언트들의 목록은 어떤 클라이언트들이 남아 있는지를 알기 위하여 검사된다(506). 그러한 경우, 상기 메시지는 상기 클라이언트(508)로 전송되고, 그렇지 않다면 에러 메시지가 상기 네트워크로 되돌려 송신된다(510).
도 3, 도 4 및 도 5에 도시된 예시적인 루틴들이 설명을 위해서 도시된 것이고 한정하기 위한 것이 아니라는 것은 이해된다. 본 발명의 정신안에서 여전히 유지되면서 상기 동작들 및 프로그램 흐름에 대해 다양한 변경들이 행해질 수 있다. 상기 SIP 스택은 설명된 절차적인 접근보다는 객체-지향 접근을 따를 수 있다. 예를 들어, 각 클라이언트는 클라이언트 객체로 표현될 수 있고, 각 클라이언트 객체는 어떤 클라이언트가 상기 메시지를 수신해야 하는지를 결정하기 위하여 상기 SIP 및 SDP 헤더들을 처리할 수 있다.
여기에 제공된 설명을 사용하여, 본 발명은 프로그래밍 소프트웨어, 펌웨어, 하드웨어 또는 이들의 어떤 조합을 생성하기 위한 표준 프로그래밍 및/또는 엔지니어링 기술들을 사용함으로써 기계, 프로세스 또는 제조 물품으로서 구현될 수 있다. 컴퓨터로 읽을 수 있는 프로그램 코드를 구비하는, 어떤 결과로서 생성되는 프로그램(들)도 상주 메모리 장치들, 스마트 카드들 또는 다른 분리가능 메모리 장치들 또는 전송 장치들과 같은 하나 이상의 컴퓨터-사용가능 매체상에 구현될 수 있어서, 본 발명에 의한 컴퓨터 프로그램 생성물 또는 제조 물품을 형성할 수 있다. 그 자체로, 여기에서 사용되는 바와 같은 "컴퓨터로 읽을 수 있는 매체"는 이러한 프로그램을 전송하는 어떤 전송 매체 또는 어떤 컴퓨터-사용가능 매체상에 영구적이거나 임시로 존재하는 컴퓨터 프로그램을 포함할 것이다.
상기에 나타낸 바와 같이, 메모리/저장 장치들은 디스크들, 광 디스크들, 스마트 카드들, SIM들, WIM들과 같은 분리가능 메모리 장치들, 램(RAM), 롬(ROM), PROM 등과 같은 반도체 메모리들을 포함하지만 이에 한정되지는 않는다. 통신 매체들은 무선/전파 통신 네트워크들, 인터넷, 인트라넷, 전화/모뎀-기반 네트워크 통신, 유선/케이블 통신 네트워크, 위성 통신 및 다른 정지 또는 이동 네트워크 시스템들/통신 링크들을 통한 통신들을 포함하지만, 이에 한정되지는 않는다.
여기에 제공된 설명으로부터, 당업자는 본 발명을 구현하는 컴퓨터 서브요소들 및/또는 데이터 처리 장치를 생성하고, 본 발명의 방법을 수행하기 위한 컴퓨터 서브요소들 및/또는 데이터 처리 장치를 생성하기 위하여, 적합한 범용 컴퓨터 하드웨어 또는 특정 목적 컴퓨터 하드웨어와 설명된 바와 같이 생성된 소프트웨어를 쉽사리 결합할 수 있다.
본 발명의 예시적인 실시예에 관한 상기 설명이 예증 및 설명을 위해 제공되었다. 그것은 본 발명을 개시된 정확한 형태로 제한하거나 망라하는 것을 의도하지 않는다. 많은 변경들 및 변형들이 상기 교시에 비추어 가능하다. 따라서, 본 발명의 범위는 상세한 설명에 제한되지 않고, 오히려 여기에 첨부된 청구항들에 의해 제한될 것이다.

Claims (37)

  1. 복수의 클라이언트들에 대한 세션 설정 절차를 처리하는 방법에 있어서,
    상기 복수의 클라이언트들 각각의 클라이언트 능력을 메시지 처리 스택으로 전달하는 단계;
    상기 메시지 처리 스택에서 네트워크 인터페이스로부터 세션 설정 메시지를 수신하는 단계;
    상기 세션 설정 메시지와 상기 클라이언트 능력들에 기초하여 상기 복수의 클라이언트들로부터 수신지 클라이언트를 결정하는 단계; 및
    상기 세션 설정 메시지를 상기 메시지 처리 스택으로부터 상기 수신지 클라이언트로 전달하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 수신지 클라이언트가 실행되고 있지 않은 경우, 상기 수신지 클라이언트를 기동시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 클라이언트들 각각의 클라이언트 능력을 상기 메시지 처리 스택으로 전달하는 단계는 지속 데이터 저장 장치에 상기 클라이언트 능력을 서술(describing)하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 클라이언트들 각각의 클라이언트 능력을 상기 메시지 처리 스택으로 전달하는 단계는 상기 클라이언트의 실행 시간에 상기 클라이언트 능력을 전달하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 상기 세션 설정 절차는 세션 개시 프로토콜(SIP: Session Initiation Protocol)을 포함하는 것을 특징으로 하는 방법.
  6. 제5항에 있어서, 상기 수신지 클라이언트를 결정하는 단계는 상기 세션 설정 메시지의 SIP 헤더 및 SIP 시작 라인 중 하나 이상을 검사하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제5항에 있어서, 상기 수신지 클라이언트를 결정하는 단계는 상기 세션 설정 메시지의 SIP 본체를 검사하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서, 상기 수신지 클라이언트를 결정하는 단계는 상기 세션 설정 메시지의 본체의 세션 서술 프로토콜(SDP: Session Description Protocol) 헤더를 검사하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 복수의 클라이언트들에 대한 세션 설정 절차를 처리하기 위하여 네트워크 인터페이스에 접속된 제조 물품에 있어서, 컴퓨터로 하여금
    상기 복수의 클라이언트들 각각의 클라이언트 능력을 메시지 처리 스택으로 전달하는 단계;
    상기 메시지 처리 스택에서 상기 네트워크 인터페이스로부터 세션 설정 메시지를 수신하는 단계;
    상기 메시지와 상기 클라이언트 능력들에 기초하여 상기 복수의 클라이언트들로부터 수신지 클라이언트를 결정하는 단계; 및
    상기 세션 설정 메시지를 상기 메시지 처리 스택으로부터 상기 수신지 클라이언트로 전달하는 단계를 수행하도록 야기하는 명령들로 이루어진 컴퓨터로 읽을 수 있는 매체를 포함하는 것을 특징으로 하는 제조 물품.
  10. 제9항에 있어서, 상기 컴퓨터로 읽을 수 있는 매체는 컴퓨터로 하여금 상기 수신지 클라이언트가 실행되고 있지 않은 경우 상기 수신지 클라이언트를 기동시키는 단계를 수행하도록 야기하는 명령들로 더 이루어져 있는 것을 특징으로 하는 제조 물품.
  11. 제9항에 있어서, 상기 클라이언트들 각각의 클라이언트 능력을 상기 메시지 처리 스택으로 전달하는 단계는 지속 데이터 저장 장치에 상기 클라이언트 능력을 서술하는 단계를 포함하는 것을 특징으로 하는 제조 물품.
  12. 제9항에 있어서, 상기 클라이언트들 각각의 클라이언트 능력을 상기 메시지 처리 스택으로 전달하는 단계는 상기 클라이언트의 실행 시간에 상기 클라이언트 능력을 전달하는 단계를 포함하는 것을 특징으로 하는 제조 물품.
  13. 제9항에 있어서, 상기 세션 설정 절차는 세션 개시 프로토콜(SIP)을 포함하는 것을 특징으로 하는 제조 물품.
  14. 제13항에 있어서, 상기 수신지 클라이언트를 결정하는 단계는 상기 메시지의 SIP 헤더와 SIP 시작 라인 중 하나 이상을 검사하는 단계를 포함하는 것을 특징으로 하는 제조 물품.
  15. 제13항에 있어서, 상기 수신지 클라이언트를 결정하는 단계는 상기 메시지의 SIP 본체를 검사하는 단계를 포함하는 것을 특징으로 하는 제조 물품.
  16. 제15항에 있어서, 상기 수신지 클라이언트를 결정하는 단계는 상기 메시지의 본체의 세션 서술 프로토콜(SDP) 헤더를 검사하는 단계를 포함하는 것을 특징으로 하는 제조 물품.
  17. 제9항에 있어서, 상기 제조 물품은 이동 단말기를 포함하는 것을 특징으로 하는 제조 물품.
  18. 제9항에 있어서, 상기 네트워크 인터페이스는 무선 인터페이스를 포함하는 것을 특징으로 하는 제조 물품.
  19. 네트워크 인터페이스에 접속된 데이터 처리 장치상에서 세션 개시 프로토콜(SIP) 메시지를 처리하는 방법에 있어서,
    상기 데이터 처리 장치의 SIP 처리 스택에서 상기 SIP 메시지를 수신하는 단계로서, 상기 SIP 처리 스택은 상기 네트워크 인터페이스의 사전-결정된 포트와 관련되는 단계;
    상기 SIP 메시지의 데이터에 기초하여 상기 데이터 처리 장치의 수신지 클라이언트 애플리케이션을 선택하는 단계;
    상기 수신지 클라이언트 애플리케이션을 선택하는 것이 성공적이었는지에 기초하여 SIP 응답 메시지를 상기 SIP 처리 스택으로부터 상기 네트워크 인터페이스로 송신하는 단계; 및
    상기 SIP 메시지를 상기 SIP 처리 스택으로부터 상기 수신지 클라이언트 애플리케이션으로 전달하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 제19항에 있어서, 상기 수신지 클라이언트 애플리케이션이 실행되고 있지 않은 경우 상기 수신지 클라이언트 애플리케이션을 기동시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  21. 제19항에 있어서, 상기 데이터 처리 장치의 수신지 클라이언트 애플리케이션을 선택하는 단계는 지속 데이터 저장 장치로부터 클라이언트 능력을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  22. 제19항에 있어서, 상기 데이터 처리 장치의 수신지 클라이언트 애플리케이션을 선택하는 단계는 실행되고 있는 클라이언트로부터 클라이언트 능력을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  23. 제19항에 있어서, 상기 수신지 클라이언트를 선택하는 단계는 상기 SIP 메시지의 SIP 헤더와 SIP 시작 라인 중 하나 이상을 검사하는 단계를 포함하는 것을 특징으로 하는 방법.
  24. 제19항에 있어서, 상기 수신지 클라이언트를 선택하는 단계는 상기 SIP 메시지의 본체를 검사하는 단계를 포함하는 것을 특징으로 하는 방법.
  25. 제24항에 있어서, 상기 수신지 클라이언트를 선택하는 단계는 상기 SIP 메시지의 본체의 세션 서술 프로토콜(SDP) 헤더를 검사하는 단계를 포함하는 것을 특징으로 하는 방법.
  26. 네트워크와 관련된 세션 개시 프로토콜(SIP) 메시지를 처리하는 시스템에 있어서,
    상기 네트워크로부터 SIP 메시지를 수신하기 위한 네트워크 인터페이스;
    상기 네트워크 인터페이스 수단으로부터 상기 SIP 메시지를 수신하고 상기 SIP 메시지에 대한 수신지 클라이언트를 결정하기 위한 SIP 프로세서; 및
    상기 SIP 프로세서와 상기 수신지 클라이언트간의 통신들을 용이하게 하기 위한 프로세스간(inter-process) 통신 수단을 포함하고,
    상기 SIP 프로세서는 상기 프로세스간 통신 수단을 사용하여 상기 SIP 메시지를 상기 수신지 클라이언트로 전달하는 것을 특징으로 하는 시스템.
  27. 제26항에 있어서, 상기 시스템은 프로세스 실행 수단을 더 포함하고, 상기 SIP 프로세서는 상기 프로세스 실행 수단을 사용하여 상기 수신지 클라이언트를 기동시키도록 구성되는 것을 특징으로 하는 시스템.
  28. 제26항에 있어서, 상기 시스템은 지속 데이터 저장 장치를 더 포함하고, 상기 SIP 프로세서는 상기 지속 데이터 저장 장치로부터 클라이언트 능력을 결정함으로써 수신지 클라이언트를 식별하도록 구성되는 것을 특징으로 하는 시스템.
  29. 제26항에 있어서, 상기 SIP 프로세서는 실행되고 있는 클라이언트로부터 클라이언트 능력을 결정함으로써 수신지 클라이언트를 식별하도록 구성되는 것을 특징으로 하는 시스템.
  30. 제26항에 있어서, SIP 메시지들을 전달하기 위하여 상기 네트워크에 연결된 서버를 더 포함하는 것을 특징으로 하는 시스템.
  31. 제26항에 있어서, 상기 네트워크 인터페이스는 무선 네트워크 인터페이스를 포함하는 것을 특징으로 하는 시스템.
  32. 네트워크와 인터페이스하도록 되어 있는 장치에 있어서,
    상기 네트워크로부터 세션 설정 메시지를 수신하도록 구성된 네트워크 인터페이스;
    복수의 클라이언트 애플리케이션들에 대한 클라이언트 능력들을 저장하기 위한 데이터 저장 장치; 및
    프로세서를 포함하며,
    상기 프로세서는,
    상기 네트워크 인터페이스로부터 상기 세션 설정 메시지를 수신하도록 구성되고,
    상기 세션 설정 메시지 및 상기 데이터 저장 장치의 클라이언트 능력들에 기초하여 상기 복수의 클라이언트 애플리케이션들로부터 수신지 클라이언트 애플리케이션을 식별하도록 구성되며,
    상기 세션 설정 메시지를 상기 수신지 클라이언트 애플리케이션으로 전달하도록 구성되는 것을 특징으로 하는 장치.
  33. 제32항에 있어서, 상기 프로세서는 상기 수신지 클라이언트 애플리케이션이 실행되고 있지 않은 경우 상기 수신지 클라이언트 애플리케이션을 기동시키도록 더 구성되는 것을 특징으로 하는 장치.
  34. 제32항에 있어서, 상기 세션 설정 메시지는 세션 개시 프로토콜(SIP) 메시지를 포함하는 것을 특징으로 하는 장치.
  35. 제34항에 있어서, 상기 프로세서는 상기 SIP 메시지의 SIP 헤더와 SIP 시작 라인 중 하나 이상을 검사함으로써 상기 수신지 클라이언트 애플리케이션을 결정하도록 더 구성되는 것을 특징으로 하는 장치.
  36. 제34항에 있어서, 상기 프로세서는 상기 SIP 메시지의 본체를 검사함으로써 상기 수신지 클라이언트 애플리케이션을 결정하도록 더 구성되는 것을 특징으로 하는 장치.
  37. 제34항에 있어서, 상기 프로세서는 상기 SIP 메시지의 세션 서술 프로토콜(SDP) 헤더를 검사함으로써 상기 수신지 클라이언트 애플리케이션을 결정하도록 더 구성되는 것을 특징으로 하는 장치.
KR1020057017291A 2003-03-20 2004-03-12 세션 개시 프로토콜-가능 단말기에 다중-클라이언트 지원을제공하기 위한 방법 및 장치 KR100686705B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/393,500 2003-03-20
US10/393,500 US7305681B2 (en) 2003-03-20 2003-03-20 Method and apparatus for providing multi-client support in a sip-enabled terminal

Publications (2)

Publication Number Publication Date
KR20050111361A true KR20050111361A (ko) 2005-11-24
KR100686705B1 KR100686705B1 (ko) 2007-02-26

Family

ID=33029702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057017291A KR100686705B1 (ko) 2003-03-20 2004-03-12 세션 개시 프로토콜-가능 단말기에 다중-클라이언트 지원을제공하기 위한 방법 및 장치

Country Status (5)

Country Link
US (1) US7305681B2 (ko)
EP (1) EP1604267A4 (ko)
KR (1) KR100686705B1 (ko)
CN (1) CN100428117C (ko)
WO (1) WO2004084055A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100728280B1 (ko) * 2005-07-19 2007-06-13 삼성전자주식회사 Sip를 이용한 통신 시스템에서 호 해제 요청/응답메시지를 이용한 네트워크 상태 관리 방법

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480254B2 (en) * 2003-05-28 2009-01-20 Nokia Corporation System, apparatus, and method for providing multi-application support using a single protocol stack
US7913237B2 (en) * 2003-08-26 2011-03-22 Ensequence, Inc. Compile-time code validation based on configurable virtual machine
JP4028853B2 (ja) * 2004-03-30 2007-12-26 株式会社日立製作所 情報サービス通信ネットワークシステムおよびセッション管理サーバ
US8229082B2 (en) * 2004-06-17 2012-07-24 International Business Machines Corporation Awareness and negotiation of preferences for improved messaging
US20050289222A1 (en) * 2004-06-28 2005-12-29 Sahim Faramarz F Flexible session initiation protocol endpoint signaling
US20060047840A1 (en) * 2004-08-31 2006-03-02 Peter Postmus Method and session initiation protocol (SIP) server for the exchange of end-point capabilities
JP4555342B2 (ja) 2004-11-15 2010-09-29 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチメディア通信セッションを可能にする方法および配置
US7924814B1 (en) * 2004-12-03 2011-04-12 At&T Intellectual Property Ii, L.P. Method and apparatus for enabling dual tone multi-frequency signal processing in the core voice over internet protocol network
KR100636913B1 (ko) * 2004-12-14 2006-10-19 엘지전자 주식회사 Sip 시그널 처리 시스템
DE102004063298B4 (de) * 2004-12-29 2006-11-16 Infineon Technologies Ag Verfahren zum rechnergestützten Verwalten von Kommunikationsrechten zum Kommunizieren mittels mehrerer unterschiedlicher Kommunikationsmedien in einer Telekommunikations-Konferenz mit mehreren Telekommunikations-Einrichtungen
KR100666946B1 (ko) * 2005-01-19 2007-01-10 삼성전자주식회사 단말의 상태를 테스트하기 위한 네트워크시스템 및 그테스트방법
US8069219B2 (en) * 2005-03-03 2011-11-29 Nokia Corporation Method and apparatus for implementing a mobile web server based system
US7949766B2 (en) * 2005-06-22 2011-05-24 Cisco Technology, Inc. Offload stack for network, block and file input and output
US20060294248A1 (en) * 2005-06-28 2006-12-28 Microsoft Corporation Automatic server configuration based on user agent
EP1933577A4 (en) * 2005-09-05 2009-06-24 Huawei Tech Co Ltd METHOD FOR PERFORMING SERVICE ACTIVATION OPERATION AND USER TERMINAL COMPRISING SAID METHOD
US20070081452A1 (en) * 2005-10-06 2007-04-12 Edward Walter Access port centralized management
KR100747468B1 (ko) * 2005-10-31 2007-08-09 엘지전자 주식회사 콤비네이션 서비스를 위한 단말 능력정보 갱신 통지 방법및 시스템
US7907599B2 (en) * 2006-04-10 2011-03-15 Network Equipment Technologies, Inc. Determination of SIP transport to reduce call setup delays
US8819242B2 (en) * 2006-08-31 2014-08-26 Cisco Technology, Inc. Method and system to transfer data utilizing cut-through sockets
CN101166178B (zh) * 2006-10-16 2010-05-12 华为技术有限公司 会话描述协议版本协商方法、系统及网络实体
JP5769909B2 (ja) * 2007-06-22 2015-08-26 京セラ株式会社 無線通信装置およびサーバ装置
US20090006533A1 (en) * 2007-06-28 2009-01-01 Yahoo! Inc. Server-aided approach to improve media negotiation efficiency
CN101690073B (zh) * 2007-07-04 2013-08-21 艾利森电话股份有限公司 跨越数据网络的ip链路建立的方法和装置
JP4302165B2 (ja) * 2007-12-20 2009-07-22 株式会社東芝 インタフェース装置、このインタフェース装置を備えた交換装置及びインタフェース装置で使用される制御方法
US9230286B2 (en) * 2008-03-14 2016-01-05 Industrial Technology Research Institute Methods and systems for associating users through network societies
US20090300115A1 (en) * 2008-06-03 2009-12-03 Telefonaktiebolaget Lm Ericsson (Publ) Method, node and system for adapting a session initiation protocol (sip) message for an ip multimedia subsystem (ims)
GB2493129B (en) * 2011-07-11 2018-07-04 Metaswitch Networks Ltd Method and system for managing a sip server
EP2632105B1 (en) * 2012-02-23 2015-01-21 Ericsson Modems SA Handling session initiation protocol messages in a wireless telecommunications device
EP2870735B1 (en) * 2012-07-06 2019-05-22 Telefonaktiebolaget LM Ericsson (publ) Method for adding client capability data to a sip message
US9282124B2 (en) * 2013-03-14 2016-03-08 Twilio, Inc. System and method for integrating session initiation protocol communication in a telecommunications platform
US9772876B2 (en) * 2014-01-06 2017-09-26 International Business Machines Corporation Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes
EP2938041B1 (en) * 2014-04-25 2019-06-12 Vodafone IP Licensing limited Method and system for selection in multi-device scenario
CN105471824A (zh) * 2014-09-03 2016-04-06 阿里巴巴集团控股有限公司 实现浏览器调用本地业务组件的方法、装置及系统

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2594979B2 (ja) * 1987-10-23 1997-03-26 株式会社日立製作所 マルチプロセツサシステム
US5630128A (en) * 1991-08-09 1997-05-13 International Business Machines Corporation Controlled scheduling of program threads in a multitasking operating system
JP3148152B2 (ja) 1997-06-27 2001-03-19 日本電気株式会社 電子メールシステムを用いた同報メールの配送方法
US6421707B1 (en) 1998-02-13 2002-07-16 Lucent Technologies Inc. Wireless multi-media messaging communications method and apparatus
US6493324B1 (en) * 1999-03-29 2002-12-10 Worldcom, Inc. Multimedia interface for IP telephony
US6845498B1 (en) * 1999-05-11 2005-01-18 Microsoft Corporation Method and apparatus for sharing data files among run time environment applets in an integrated circuit card
US6446218B1 (en) * 1999-06-30 2002-09-03 B-Hub, Inc. Techniques for maintaining fault tolerance for software programs in a clustered computer system
US6615236B2 (en) * 1999-11-08 2003-09-02 Worldcom, Inc. SIP-based feature control
US6510464B1 (en) * 1999-12-14 2003-01-21 Verizon Corporate Services Group Inc. Secure gateway having routing feature
US6678735B1 (en) * 2000-01-26 2004-01-13 Nortel Networks Limited Method and apparatus for a sip client manager
EP2271148B1 (en) 2000-03-03 2012-10-31 Qualcomm Incorporated Communication device and its corresponding method for providing security in a group communication network
AU2001240004A1 (en) 2000-03-03 2001-09-17 Qualcomm Incorporated Method and apparatus for participating in group communication services in an existing communication system
US20010024951A1 (en) 2000-03-22 2001-09-27 Marten Rignell Apparatus and a method for providing operational status information between subscribers in a telecommunications network
US6732175B1 (en) * 2000-04-13 2004-05-04 Intel Corporation Network apparatus for switching based on content of application data
US7463619B1 (en) * 2000-05-25 2008-12-09 Nortel Networks Limited Launching a web browser in response to a message relating to communications sessions
US6433043B1 (en) * 2000-11-28 2002-08-13 Transitions Optical, Inc. Removable imbibition composition of photochromic compound and kinetic enhancing additive
CA2437346A1 (en) 2001-02-02 2002-08-15 Opentv, Inc. A method and apparatus for the compilation of an interpretative language for interactive television
US6438114B1 (en) * 2001-02-05 2002-08-20 Motorola, Inc. Method and apparatus for enabling multimedia calls using session initiation protocol
US20020131395A1 (en) * 2001-03-19 2002-09-19 Chenghui Wang Session initiation protocol (SIP) user agent in a serving GPRS support node (SGSN)
US7185094B2 (en) * 2001-03-30 2007-02-27 Sandcherry, Inc. Media session framework using a control module to direct and manage application and service servers
US7162543B2 (en) * 2001-06-06 2007-01-09 Sap Ag Process for synchronizing data between remotely located devices and a central computer system
US6985961B1 (en) * 2001-12-04 2006-01-10 Nortel Networks Limited System for routing incoming message to various devices based on media capabilities and type of media session
AU2003220423A1 (en) 2002-03-22 2003-10-13 Sun Microsystems, Inc. Mobile download system
GB0208069D0 (en) * 2002-04-08 2002-05-22 Nokia Corp Message header for messaging service
US20030236892A1 (en) * 2002-05-31 2003-12-25 Stephane Coulombe System for adaptation of SIP messages based on recipient's terminal capabilities and preferences
US7167916B2 (en) * 2002-08-30 2007-01-23 Unisys Corporation Computer OS dispatcher operation with virtual switching queue and IP queues
US6785374B2 (en) * 2002-09-30 2004-08-31 Guanglu Wang Method and apparatus for providing transaction capabilities application part information in a session initiation protocol system
US7043579B2 (en) * 2002-12-05 2006-05-09 International Business Machines Corporation Ring-topology based multiprocessor data access bus
AU2003211232A1 (en) * 2003-02-19 2004-09-09 Communications Research Laboratory, Independent Administrative Institution Communication node, signaling network, communication network system, and communication method thereof
US8423976B2 (en) * 2003-03-13 2013-04-16 Northrop Grumman Corporation Extreme pipeline and optimized reordering technology
US7092703B1 (en) 2003-03-24 2006-08-15 Sprint Spectrum L.P. Method and system for accessing a universal message handler on a mobile device
US7079839B1 (en) 2003-03-24 2006-07-18 Sprint Spectrum L.P. Method and system for push launching applications with context on a mobile device
US7313131B2 (en) * 2003-04-22 2007-12-25 Nortel Networks Limited Processing of communication session request messages
US6981072B2 (en) * 2003-06-05 2005-12-27 International Business Machines Corporation Memory management in multiprocessor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100728280B1 (ko) * 2005-07-19 2007-06-13 삼성전자주식회사 Sip를 이용한 통신 시스템에서 호 해제 요청/응답메시지를 이용한 네트워크 상태 관리 방법

Also Published As

Publication number Publication date
CN100428117C (zh) 2008-10-22
US20040250253A1 (en) 2004-12-09
EP1604267A4 (en) 2009-11-11
EP1604267A1 (en) 2005-12-14
KR100686705B1 (ko) 2007-02-26
CN1761928A (zh) 2006-04-19
WO2004084055A1 (en) 2004-09-30
US7305681B2 (en) 2007-12-04

Similar Documents

Publication Publication Date Title
KR100686705B1 (ko) 세션 개시 프로토콜-가능 단말기에 다중-클라이언트 지원을제공하기 위한 방법 및 장치
US7039710B2 (en) Method and apparatus for providing multi-client support in a SIP-enabled terminal
JP5518954B2 (ja) セッション接続の持続
EP2843908B1 (en) Full-duplex bi-directional communication over a remote procedure call based communications protocol, and applications thereof
US7493623B2 (en) System and method for identifying applications targeted for message receipt in devices utilizing message queues
US20040186918A1 (en) Method and apparatus for dispatching incoming data in a multi-application terminal
US20090113460A1 (en) Systems and methods for providing a generic interface in a communications environment
US20050071419A1 (en) System, apparatus, and method for providing Web services using wireless push
US8601139B2 (en) Multiple core session initiation protocol (SIP)
JP4527144B2 (ja) ネットワークロボットシステム及びネットワークロボットシステムにおける通信方法
WO2013024342A1 (en) Method for flow control and for reliable communication in a collaborative environment
CN111064771B (zh) 一种网络请求处理方法及系统
US20200053162A1 (en) Device and media redirection technique for a browser-based remote desktop client
CN112751812A (zh) 应用协议自适配的方法和装置
US10742776B1 (en) Accelerating isochronous endpoints of redirected USB devices
CN115134395B (zh) 数据处理方法以及装置
US20080025232A1 (en) Method and system for network connection
CN113176957B (zh) 一种基于rpc的远程应用自动化系统
KR20020033219A (ko) 연결지향 소켓 인터페이스 구현방법
KR20050043021A (ko) 무선 인터넷 플랫폼 상에 sip/imps 동적 연결라이브러리를 구비한 이동 통신 단말기
US20180248958A1 (en) Sharing local network resources with a remote vdi instance
JP2007124450A (ja) ソフトフォン機能を備える通信端末及び通信プログラム

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140120

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 14