KR101437189B1 - 데이터를 대화에 통합시키기 위한 방법, 시스템 및 컴퓨터 판독가능 매체 - Google Patents

데이터를 대화에 통합시키기 위한 방법, 시스템 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR101437189B1
KR101437189B1 KR1020097005835A KR20097005835A KR101437189B1 KR 101437189 B1 KR101437189 B1 KR 101437189B1 KR 1020097005835 A KR1020097005835 A KR 1020097005835A KR 20097005835 A KR20097005835 A KR 20097005835A KR 101437189 B1 KR101437189 B1 KR 101437189B1
Authority
KR
South Korea
Prior art keywords
computing device
message
conversation
url
voice
Prior art date
Application number
KR1020097005835A
Other languages
English (en)
Other versions
KR20090054451A (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 KR20090054451A publication Critical patent/KR20090054451A/ko
Application granted granted Critical
Publication of KR101437189B1 publication Critical patent/KR101437189B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)

Abstract

데이터를 대화에 통합시키기 위한 설비가 제공된다. 각종 실시예에서, 이 설비는 제1 메시지를 응답 컴퓨팅 장치에 송신하여 대화를 시작하고, 응답 컴퓨팅 장치로부터 대화와 관련된 제2 메시지를 수신하고, 수신된 메시지가 대화와 관련되는 데이터의 표시를 포함하는지를 판정하고, 수신된 메시지가 대화와 관련되는 데이터의 표시를 포함하는 경우, 데이터를 렌더링한다. 설비는 개시자로부터 대화와 관련된 제1 메시지를 수신하고 수신된 메시지에 응답하는 애플리케이션 서버, 대화와 관련된 메시지를 처리하는 컴포넌트(118), 및 대화와 관련되는 데이터가 존재하는지를 판정하고, 존재한다면, 개시자에 송신되는 제2 메시지에 데이터의 표시를 추가하는 통합 컴포넌트를 포함할 수 있다.
컴퓨팅 장치, 인스턴스 메시지, VoIP, 프로토콜, 전화, SIP, XML

Description

데이터를 대화에 통합시키기 위한 방법, 시스템 및 컴퓨터 판독가능 매체{INTEGRATING DATA WITH CONVERSATIONS}
대화 참여자들 간의 이들의 컴퓨팅 장치를 이용한 실시간 대화는 점점 더 일반화되고 있다. 이러한 실시간 대화는 참여자들이 이들의 컴퓨터 장치(예를 들면, PDA(personal digital assistants), 디지털 전화 등)에 있어야 되고 통신을 수신할 때 응답을 할 수 있어야 한다. 일반적인 형태의 실시간 대화는 인스턴스 메시징 서비스(instant messaging services), 전화 시스템, 회의 시스템(conferencing systems) 등에 의해 제공된다. 인스턴스 메시징 서비스는 참여자가 대화 중에 있는 다른 참여자들이 수신하는 메시지를 빠르게 송신할 수 있게 해준다. 그러면, 수신하는 참여자는 응답 메시지를 다른 참여자에게 유사한 방식으로 송신할 수 있다. 효율을 위하여, 실시간 대화는 참여자가 수신되는 메시지를 빠르게 인식하고, 보고, 응답하는 것에 의존한다. 이러한 빠른 응답은 전자 메일 메시지의 수신자가 이들이 편할 때에 메시지에 응답하는 통상적인 전자 메일 시스템과는 대조적이다.
인스턴트 메시징 서비스는 참여자들 간의 통신을 구축하고 관리하는 데에 다양한 네트워크 프로토콜을 채용한다. 일부 인스턴트 메시징 서비스는 "SIP(session initiation protocol)"를 채용한다. SIP는 컴퓨터 시스템이 서로를 발견하고 세션을 구축, 수정, 및 종료하는 데에 이용할 수 있는 애플리케이션-계층 제어 프로토콜이다. SIP는 인터넷 권고 표준(internet proposed standard)이다. 그 스펙(specification)은 웹 사이트인 Internet Engineering Task Force에서 입수할 수 있으며, SIP 확장에 대한 스펙도 입수할 수 있다. 이들 스팩은 본원에 그 전체가 참조로서 포함된다.
SIP 네트워크는 클라이언트, 서버, 둘 다, 또는 기타 개체(entity)로서의 대화에 참여할 수 있는 개체를 포함한다. SIP는 사용자 에이전트, 프록시 서버, 재지정(redirect) 서버, 등록처(registrars), 및 라우팅 에이전트를 포함하는 복수의 유형의 개체를 지원한다. 사용자 에이전트는 다른 SIP 개체들과 메시지를 교환함으로써 세션을 개시하고 종료한다. 사용자 에이전트는 SIP 요청을 개시하는 장치인 사용자 에이전트 클라이언트("UAC"), 또는 SIP 요청을 수신하고 이러한 요청에 응답하는 장치인 사용자 에이전트 서버("UAS")가 될 수 있다. 예로서, "IP-전화", PDA, 및 임의의 기타 유형의 컴퓨팅 장치는 사용자 에이전트가 될 수 있다. 장치는 어떤 대화에서는 UAC가 되고 다른 대화에서는 UAS가 될 수 있거나, 대화 중에 규칙을 변경할 수 있다. 프록시 서버는 클라이언트들을 향한 한 서버(a server to clients) 및 서버들을 향한 한 클라이언트(a client to servers)로서 동작하는 개체이다. 이렇게 동작하는 중에, 프록시 서버들은 UAC들과 UAS들 간의 메시지들을 잡아내거나(intercept), 해석하거나 전달한다. 재지정 서버는 SIP 요청을 수락하고 이 요청을 보낸 UAC를 향한 응답을 생성하여 교체되는(alternative) 네트워크 자원에 접촉한다. 등록처는 사용자 에이전트로부터 등록 정보를 수용하는 서버이며 위치지정 서비스(location service)에 이 수신된 등록 정보를 알린다. 라우팅 에이전트(예를 들면, 게이트웨이)는 네트워크를 통해 개체들을 접속시킬 수 있다.
SIP는 UAC로부터 UAS로 송신된 요청, 및 요청에 응답할 때 UAS로부터 UAC로 송신된 응답을 포함하는 복수의 메시지 유형을 지원한다. SIP는 3개의 부분으로 구성될 수 있다. SIP 메시지의 첫 번째 부분은 "요청 라인(request line)"으로, 메시지(예를 들면, INVITE) 및 요청이 향하고 있는 사용자 또는 서비스를 식별하는 요청 URI를 나타내는 필드들을 포함한다. SIP 메시지의 두 번째 부분은 이름-값 페어(pair)로서 그 값이 나타나는 헤더(header)를 포함한다. SIP 메시지의 세 번째 부분은 메시지의 본문(body)인데, 이 메시지의 본문은 개시될 세션을 기술하는 데에 이용되거나 세션과 관련된 데이터를 포함한다. 메시지 본문들은 요청, 응답, 또는 기타 SIP 메시지에 나타날 수 있다.
"VoIP(Voice over Internet Protocol)" 전화 통화(call)는 전화를 받은 수신자의 주소(예를 들면, 전화 번호)를 식별하는 SIP INVITE 요청을 송신하는 발신자의 장치에 의해 개시될 수 있다. 수신자의 장치가 초청(invitation)을 수신했을 때, 이 이 장치는 수신자에게 이 초청을 통지하고 발신자에게 SIP SESSION-In-PROGRESS 메시지를 송신할 수 있다. 수신자가 대답할 때, 수신자의 장치는 INVITE 요청을 SIP 200 OK 메시지로 응답한다. 그 다음 발신자와 수신자 간의 대화는 RTP(Real-Time Protocol)를 이용하는 패킷으로 전송될 수 있다. 발신자가 전화를 끊었을 때, 발신자의 장치는 SIP BYE 요청을 수신자에게 송신하여 통화를 종료한다.
통상적인 "IVR(Interactive Voice Response)" 시스템은 유용한 방식으로 발 신자에게 많은 정보를 제공할 수 없다. 예로서, IVR 시스템은 일반적으로 사진, 영상 등을 제공할 수 없다. 사람들은 멀티미디어 형태 등을 이용하여 많은 정보를 수신하는 것에 익숙해졌다. 통상적인 IVR 시스템은 전화만을 이용하기 때문에 멀티미디어 정보를 제공할 수가 없다.
데이터를 대화에 통합시키기 위한 설비가 제공된다. 이 설비는 사용자들이 이들의 온라인 대화와 관련될 수 있는 추가적인 데이터를 볼 수 있도록 하나 이상의 컴퓨팅 장치가 데이터를 대화와 통합하게 동작시킬 수 있다. 개시 컴퓨팅 장치(예를 들면, 사용자의 클라이언트 컴퓨팅 장치)가 애플리케이션 서버 또는 메시지를 처리하는 기타 컴퓨팅 장치 등의 응답 컴퓨팅 장치에 메시지를 송신할 때, 응답 컴퓨팅 장치는 이 장치가 개시 컴퓨팅 장치에 송신하는 메시지에 대화와 관련된 추가적인 데이터가 이용가능함을 표시할 수 있다. 그 다음 개시 컴퓨팅 장치는, 메시지를 수신할 때, 이 표시된 데이터를 검색하고 사용자가 대화 중에 채용한 통신 애플리케이션과 관련된 윈도우(window) 등에 렌더링할 수 있다. 설비가 메시지에 표시하는 데이터는 웹 페이지, 오디오/영상 컨텐츠, 문서, 등과 같은 임의의 종류의 정보를 식별할 수 있다. 개시 컴퓨팅 장치는 이 장치가 응답 컴퓨팅 장치로부터 수신한 표시를 추후에 응답 컴퓨팅 장치로 송신되는 메시지에서 식별할 수 있어, 예를 들면, 이 두 컴퓨팅 장치 모두가 정보를 동기화할 수 있도록 한다.
이 요약은 상세한 설명에서 이하 더 기술될 개념들 중 간단한 형태로 선택된 것을 소개하기 위하여 제공된 것이다. 이 요약은 청구된 본원의 요지의 핵심 특징 또는 필수적인 특징을 식별하는 것을 의도하지 않으며, 청구된 본원 요지의 범주의 결정을 돕는 것으로서 이용되는 것을 의도하지도 않는다.
도 1a는 일부 실시예에서 설비가 동작할 수 있는 적절한 컴퓨팅 환경의 일례를 도시하는 블록도.
도 1b는 일부 실시예에서의 도 1a의 저장 유닛을 보다 상세히 도시하는 블록도.
도 2 및 도 3은 각종 실시예에서의 설비와 관련된 컴포넌트들을 도시하는 블록도.
도 4 및 도 5는 각종 실시예에서의 설비의 컴포넌트들 간의 메시지의 흐름들 도시하는 메시지 흐름도.
도 6a 내지 6c는 각종 실시예에서의 설비와 관련된 사용자 인터페이스의 양태를 도시하는 사용자 인터페이스 도면.
도 7은 각종 실시예에서의 설비에 의해 호출되는 connect 루틴을 예시하는 흐름도.
도 8은 각종 실시예에서의 설비에 의해 호출되는 display_data 루틴을 도시하는 흐름도.
도 9는 각종 실시예에서의 설비와 관련된 애플리케이션 서버 컴포넌트에 의해 호출되는 indicate_data 루틴을 도시하는 흐름도.
도 10은 각종 실시예에서의 설비와 관련된 게이트웨이 컴포넌트에 의해 호출 되는 indicate_data 루틴을 도시하는 흐름도.
데이터를 대화에 통합하기 위한 설비가 제공된다. 각종 실시예에서, 설비는 하나 이상의 컴퓨팅 장치 상에서 데이터를 대화와 통합시키도록 동작하여 사용자가 이들의 온라인 대화와 관련될 수 있는 추가적인 데이터를 볼 수 있게 한다. 예로서, 설비는 인스턴트 메시징, VoIP, 또는 영상회의 대화와 데이터를 통합하여 사용자는 대화와 관련된 인터넷 웹 페이지를 볼 수 있도록 할 수 있다. 개시 컴퓨팅 장치(예를 들면, 사용자의 클라이언트 컴퓨팅 장치)가 애플리케이션 서버 또는 메시지를 처리하는 기타 컴퓨팅 장치 등의 응답 컴퓨팅 장치에 메시지를 송신할 때, 응답 컴퓨팅 장치는 이 장치가 개시 컴퓨팅 장치에 송신하는 메시지에 대화와 관련된 추가적인 데이터가 이용가능함을 표시할 수 있다. 예로서, 응답 컴퓨팅 장치는 이 장치가 개시 컴퓨팅 장치에 송신하는 메시지에서 "URL(Uniform Resource Locator)"을 식별할 수 있다. 그 다음 개시 컴퓨팅 장치는 URL을 나타내는 메시지를 수신할 때, 식별된 URL에 위치된 웹 페이지를 검색하고 검색된 웹 페이지를 사용자가 대화 중에 채용하는 통신 애플리케이션과 관련된 윈도우 등에 디스플레이할 수 있다. 설비가 메시지에 표시하는 데이터는 웹 페이지, 오디오/영상 컨텐츠, 문서 등과 같은 임의의 종류의 정보를 식별할 수 있다. 개시 컴퓨팅 장치는 이 장치가 응답 컴퓨팅 장치로부터 수신한 표시를 추후에 응답 컴퓨팅 장치로 송신하는 메시지에서 식별할 수 있어, 예를 들면, 이 두 컴퓨팅 장치 모두가 정보를 동기화 할 수 있도록 한다. 예로서, 응답 컴퓨팅 장치는 복수의 개시 컴퓨팅 장치와의 대화 를 처리할 수 있고 개시 컴퓨팅 장치가 응답 컴퓨팅 장치가 이전에 식별한 데이터의 표시를 제공할 때, 응답 컴퓨팅 장치는 예를 들면, 개시자가 보고 있는 웹 페이지를 운영자(operator)에게 확인시키기 위해 동일한 데이터를 채용할 수 있다.
데이터를 대화와 통합함으로써, 설비는 이전에는 어렵거나 불가능하였던 많은 시나리오를 가능하게 한다. 예로서, 부동산의 구매자 예정자는 부동산 중개인과 관련된 애플리케이션 서버와의 연결을 위하여 통신 애플리케이션을 채용할 수 있다. 부동산 중개인은 구매 예정자로부터 구두로 또는 애플리케이션 서버가 구매 예정자의 컴퓨팅 장치에 표시한 웹 페이지를 통하여 정보를 수집할 수 있다. 그 다음 구매 예정자가 통신 애플리케이션과 관련된 윈도우에 나타나는 전망 좋은 매물(potentially desirable properties)과 관련된 디지털 이미지를 보는 동안 부동산 중개인은 이 전망 좋은 매물을 구두로 구매 예정자에게 설명할 수 있다. 이를 할 수 있도록, 애플리케이션 서버는 디지털 이미지 등의, 전망 좋은 매물과 관련된 상세 내역을 제공하는 하나 이상의 URL을 구매 예정자의 컴퓨팅 장치에 송신할 수 있다. URL을 수신할 때, 구매 예정자가 채용하는 통신 애플리케이션은 이 수신된 URL과 관련된 웹 페이지를 검색하고 디스플레이한다.
다른 예로서, 이 설비는 정보를 제공하거나 수집하는 데에 필요한 IVR 환경에서 이용될 수 있다. 설비는 종래의 IVR 환경이 이용할 수 있는 것보다 훨씬 많은 정보를 이 IVR 환경이 캡쳐(capture)하고 제공하도록 해줄 수 있다. 예로서, 사용자는 IVR 환경을 이용한 대화를 개시하는 데에 통신 애플리케이션을 채용할 수 있다. 사용자로부터 (예를 들면, 전화 또는 컴퓨팅 장치에서의) 키프레 스(keypresses)를 수집할 때, IVR 환경은 사용자의 컴퓨팅 장치가 실행하기 시작할 애플리케이션을 나타내는 메시지를 통신 애플리케이션에 송신할 수 있다. 애플리케이션은 사용자에게 정보를 제공하거나 사용자로부터의 정보를 수집할 수 있다. 정보는 오디오, 영상 등과 같은 복잡한 파일들을 포함할 수 있다. 대안으로, 애플리케이션은 웹 페이지를 검색하고 디스플레이하는 INTERNET EXPLORER일 수 있다.
따라서, 설비는 대화 중의 풍부한 정보의 표시 및 기타 상호작용(interactions)을 할 수 있도록 데이터를 대화와 통합한다.
설비는 도면들을 참조하여 보다 상세히 기술된다. 도 1a는 설비가 구현될 수 있는 적합한 컴퓨팅 환경(100)의 일례를 도시하는 블록도이다. 설비를 구현하기 위한 시스템은 컴퓨팅 시스템("컴퓨터")(100) 형태로 된 범용 컴퓨팅 장치를 포함한다. 컴퓨터(100)의 컴포넌트들은 처리 유닛(102), 시스템 주 메모리(104), 저장 유닛(106), 네트워크 인터페이스 또는 어댑터(108), 디스플레이(110), 하나 이상의 스피커(112), 및 입력 장치(114)를 포함할 수 있지만 이에 한정되지 않는다.
컴퓨터(100)는 통상적으로 저장 유닛(106)과 함께 동작할 수 있는 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(100)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있고 휘발성과 비휘발성 및 이동식과 비이동식 매체를 모두 포함한다.
컴퓨터(100)는 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어(peer) 장치, 또는 기타 일반(common) 네트워크 노드일 수 있으며, 통상적으로 컴퓨터(100)와 관련하여 상술한 요소들 중 다수 또는 전부를 포함한다. 논리적 접속은 LAN(local area network) 또는 WAN(wide area network)을 통하여 이루어질 수 있지만, 기타 네트워크를 통해 이루어질 수도 있다. 이러한 네트워킹 환경은 가정, 사무실, 전사적(enterprisewide) 컴퓨터 네트워크, 인트라넷, 및 인터넷에서 일반적인 것이다. 컴퓨터(100)는 유선 또는 무선 네트워크 등의 네트워크 인터페이스(108)를 통해 네트워크에 접속될 수 있다.
컴퓨터(100)는 적합한 컴퓨팅 환경의 일례에 불과하며 본 설비의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 시스템 환경이 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
이 설비는 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 이 설비에서 사용하는 데 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 셀룰러폰, 태블릿 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
이 설비는 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴 포넌트, 데이터 구조 등을 포함한다. 이 설비는 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 채용될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및/또는 원격 컴퓨터 저장 매체에 위치할 수 있다.
도 1b는 일부 실시예에서의 도 1a의 저장 유닛을 보다 상세히 도시하는 블록도이다. 도시된 실시예에 따르면, 저장 유닛(106)은 운영 체제(116), 대화 컴포넌트(118), 통합 컴포넌트(120), 및 데이터 컴포넌트(122)를 저장한다. 운영 체제의 예로는 MICROSOFT WINDOWS, APPLE MACINTOSH, UNIX, LINUX 및 기타 등등을 포함한다. 대화 컴포넌트는 대화 서비스를 제공하는 컴포넌트이다. 이들은 통신 애플리케이션, 입출력을 가능하게 하는 장치 드라이버 등과 관련된 컴포넌트를 포함한다. 통합 컴포넌트는 설비가 대화, 데이터, 및 기타 컴포넌트를 통합시키게 해주는 컴포넌트를 포함한다. 예로서, 통합 컴포넌트는 대화 메시지에 데이터의 표시를 추가하는 API(application programing interface)를 제공할 수 있다. 데이터 컴포넌트는 설비가 데이터의 위치추적, 식별, 검색, 및 렌더링 등을 함으로써 데이터를 조작하게 해주는 컴포넌트이다. 데이터 컴포넌트의 예로는 인터넷 브라우징 제어, 데이터베이스 액세스 제어, 등이 있다.
도 1a 및 1b에는 여러 가지 기능성 및 데이터가 특정 방식으로 구성된 특정 컴퓨터 시스템들 상에 상주하는 것으로 도시되었지만, 당업자들은 이러한 기능성 및 데이터가 다양한 다른 방식으로 다른 구성으로 된 컴퓨터 시스템들 간에 분산될 수 있음을 인식할 것이다. 통상적으로 상술한 바와 같이 구성된 컴퓨터 시스템들 이 설비의 동작을 지원하는 데에 이용되지만, 당업자들은 이 설비가 다양한 유형 및 구성의 장치를 이용하며 다양한 컴포넌트를 가지고 구현될 수 있다고 인식할 것이다.
본 기술은 일반적으로 하나 이상의 컴퓨터 또는 기타 장치에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 통상적으로, 프로그램 모듈의 기능성은 여러 가지 실시예에서 요구하는 바에 따라 결합될 수도 있고 분산될 수도 있다.
컴퓨팅 장치들은 전화, 영상 카메라, 마이크로폰, 헤드셋, 스피커, 프린터, 등과 같은 기타 장치와 관련하여 기능할 수 있다. 이들을 일반적으로 입출력 장치라 칭한다. 컴퓨팅 장치들은 인트라넷, 인터넷, 패킷 교환망(packet switched network) 등을 통해 물리적 또는 무선 접속을 이용하여 이들 또는 기타 장치와 통신할 수 있다.
도 2 및 도 3은 각종 실시예에서의 설비와 관련된 컴포넌트들을 도시하는 블록도이다. 통신 애플리케이션(200)은 사용자 인터페이스 컴포넌트(202), 애플리케이션 로직 컴포넌트(204), 및 통신 클라이언트 컴포넌트(206)를 포함할 수 있다.
사용자 인터페이스 컴포넌트는 입력 및 출력 동작을 처리한다. 예로서, 사용자 인터페이스 컴포넌트는 음성, 영상, 텍스트, 및 기타 입력을 수신할 수 있다. 사용자 인터페이스 컴포넌트는 또한 오디오, 영상, 텍스트, 및 기타 출력을 렌더링 할 수 있다. 이 컴포넌트는 도 1a와 관련하여 상술한 각종 컴포넌트와 함께 동작하여 도시된 컴포넌트와 관련된 장치 드라이버 등을 통해 입력을 수신하고 출력을 제공할 수 있다. 사용자 인터페이스 컴포넌트는 애플리케이션 로직 컴포넌트, 통신 클라이언트 컴포넌트, 또는 설비와 관련된 기타 컴포넌트가 채용할 수 있는, 통신 애플리케이션의 사용자 인터페이스를 제어하는 등을 위한 API를 제공할 수 있다.
애플리케이션 로직 컴포넌트는 설비의 다른 컴포넌트가 채용할 수 있는 API를 제공할 수도 있다. 이 컴포넌트는 설비가 수신한 정보를 해석하는 데에 이용하는 로직을 제공하고, 대화의 다른 참여자들에게 송신될 정보를 생성 등을 할 수 있다. 이 컴포넌트는 사용자 인터페이스 컴포넌트의 API, 통신 클라이언트 컴포넌트가 제공한 API, 설비와 관련된 기타 컴포넌트를 채용할 수 있다.
통신 클라이언트 컴포넌트는 각종 네트워킹 및 신호전달(signaling) 프로토콜을 이용한 정보의 송수신 등을 함으로써 데이터 통신을 처리한다. 예로서, 이 컴포넌트는 SIP 메시지들을 수신하고 송신할 수 있다. 애플리케이션 로직 컴포넌트 등의, 설비의 다른 컴포넌트는 메시지를 송수신하는 데에 통신 클라이언트 컴포넌트가 제공하는 API를 채용할 수 있다. 이를 행함으로써, 기타 컴포넌트는 설비가 채용하는 데이터 통신 프로토콜에 특정된 로직을 제공하지 않아도 된다. 예로서, 애플리케이션 로직 컴포넌트는 참여자와의 접속을 오픈(open)하고 메시지를 송신하기 위하여 통신 클라이언트 컴포넌트가 제공한 OpenConnection 또는 SendMessage 루틴을 호출할 수 있다. 그 다음 통신 클라이언트 컴포넌트는 하나 이상의 SIP 메시지를 생성하고 송신하여 이 접속을 구축하고 메시지를 송신할 수 있다.
통신 애플리케이션은 또한 도 1b와 관련하여 상술한 대화 컴포넌트, 통합 컴포넌트, 및 데이터 컴포넌트를 채용할 수 있다.
도 3에 도시된 실시예에 따르면, 이 설비는 하나 이상의 클라이언트 컴퓨팅 장치(302), 애플리케이션 서버 컴퓨팅 장치(304), 통신 서버 컴퓨팅 장치(306), 게이트웨이 컴퓨팅 장치(308), 및 네트워크(310)를 포함한다. 네트워크는 또한 하나 이상의 컴퓨팅 장치(도시 생략)를 포함할 수 있다. 이들 컴퓨팅 장치는 도 1a와 관련하여 상술한 컴퓨팅 장치와 유사한 것일 수 있다.
사용자(예를 들면, "개시자(initiator)")는 대화를 개시하거나 대화 요청에 응답하는 데에 클라이언트 컴퓨팅 장치(302)를 채용할 수 있다. 이 컴퓨팅 장치는 하나 이상의 통신 애플리케이션(200)을 가질 수 있다. 예로서, 통신 장치는 VoIP 통신 애플리케이션, 영상 회의 애플리케이션, 애플리케이션 공유 애플리케이션, 및 기타 통신 애플리케이션, 실시간 협력(collaboration) 애플리케이션(예를 들면, 인스턴트 메시징 기타 등등 중 하나 이상을 구비할 수 있다.
개시자가 대화를 개시할 때, 초기에 통신 클라이언트는 통신 서버(306)에 메시지를 송신할 수 있다. 통신 서버는 하나 이상의 클라이언트 컴퓨팅 장치에 통신 서비스를 제공할 수 있다. 통신 서버는 메시지에 응답할 수 있는 애플리케이션 서버들 중 하나 이상을 선택하고 클라이언트 컴퓨팅 장치에 이를 표시할 수 있다. 예로서, 통신 서버는 선택된 애플리케이션 서버의 주소(예를 들면, 인터넷 프로토 콜 또는 IP 주소)를 식별할 수 있다. 그 다음 클라이언트 컴퓨팅 장치는 식별된 애플리케이션 서버(들)에 메시지를 송신할 수 있다. 대안으로, 통신 서버가 선택된 애플리케이션 서버(들)에 수신된 메시지를 전달할 수 있다.
애플리케이션 서버는 클라이언트가 송신한 메시지에 응답할 수 있는 서버이다. 애플리케이션 서버는 데이터베이스 또는 기타 네트워크 자원 등으로부터 정보를 검색하고 클라이언트로부터의 메시지에 응답하여 이 검색된 정보를 제공할 수 있다. 애플리케이션 서버는 또한 메시지에 대한 응답을 계산하기 위해 다른 로직을 채용할 수도 있다.
각종 컴퓨팅 장치는 인트라넷, 인터넷, 또는 이들 네트워크의 조합과 같은 네트워크를 통해 상호접속될 수 있다. 통신이 인터넷을 통해 일어날 때, 컴퓨팅 장치는 보안된(secure) 버전의 하이퍼텍스트 전송 프로토콜(예를 들면, HTTP) 등의 보안된 네트워킹 프로토콜을 채용할 수 있다.
도 4 및 도 5는 각종 실시예에서의 설비의 컴포넌트들 간의 메시지의 흐름들 도시하는 메시지 흐름도이다.
도 4는 클라이언트(402)가 대화를 개시하는 사용자에게 제공해야 할 정보를 애플리케이션 서버(406)가 식별하는 실시예를 도시한다. 도시된 실시예는 SIP 메시지를 기술하지만, 다른 프로토콜이 이용될 수 있다. 사용자가 대화를 개시할 때, 클라이언트는 이 클라이언트가 통상적으로 통신하도록 구성된 통신 서버(404)에 SIP INVITE 메시지(408)를 송신할 수 있다. 통신 서버는 애플리케이션 서버에 INVITE 메시지를 전달한다(410).
INVITE 메시지를 수신할 때, 애플리케이션 서버는 이 서버가 통신 서버에 송신하는 OK 메시지(412)로 응답할 수 있다. 통신 서버는 본래 INVITE 메시지를 송신하였던 클라이언트에 OK 메시지를 전달할 수 있다(414). 애플리케이션 서버는 또한 이 OK 메시지 이후에 또는 이 메시지와 동시에 INFO 메시지(416)를 송신할 수 있다. INFO 메시지는 클라이언트가 사용자에게 제공해야 하는 정보(예를 들면, 데이터)를 식별할 수 있다. 예로서, INFO 메시지는 이 메시지의 본문에서의 정보의 표시를 포함할 수 있다. 이 표시는 "XML(extensible markup language)", 텍스트, 2진, 또는 클라이언트가 인식할 수 있는 임의의 기타 형태로 제공될 수 있다. 표시는 또한 클라이언트가 정보를 렌더링할 때 이용할 수 있는 각종 구성 설정(setting)을 포함할 수 있다. 예로서, 표시는 디스플레이할 웹 페이지의 URL 및 대화가 종료될 때 웹 페이지가 닫혀져야 함을 표시하는 구성 설정을 포함할 수 있다. 다음은 애플리케이션 서버가 INFO 메시지의 본문에 추가할 수 있는 XML 세그먼트의 예를 제공한다.
Figure 112009017072594-pct00001
이 예시적인 XML 세그먼트에서, urlToHost 엘리먼트는 클라이언트가 로딩하고 디스플레이해야 하는 웹 페이지의 URL을 나타낼 수 있다.
각종 실시예에서, INFO 메시지가 표시하는 정보는 HTML 페이지, 영상, 오디 오, 또는 임의의 미디어 형태가 될 수 있다. 클라이언트는 ACTIVEX 제어, JAVA 애플릿, 스크립트 코드, 등과 같은 애플리케이션 또는 소프트웨어 컴포넌트 등을 이용함으로써 표시된 미디어를 디스플레이하거나 렌더링할 수 있다.
통신 서버는 INFO 메시지를 클라이언트에 전달한다(418). 그 다음 클라이언트는 표시된 정보를 디스플레이하거나 렌더링할 수 있다.
그 다음 클라이언트는 통신 서버가 수신하고 애플리케이션 서버에 전달하는(424) INFO 메시지를 수신했음을 표시하기 위해 OK 메시지(422)를 송신할 수 있다.
그 다음 몇몇의 실시예에서, 클라이언트는 INFO 메시지를 송신한 애플리케이션 서버를 향하는 응답 INFO 메시지를 송신함으로써 INFO 메시지에 응답할 수 있다. 이 INFO 메시지는 표시된 정보가 검색되고 사용자에게 제공될 수 있는지 여부, 에러가 발생하였는지 여부 등과 같은 상태의 표시를 제공할 수 있다. 몇몇의 실시예에서, 클라이언트는 또한 자신이 수신한 정보의 표시(예를 들면, URL)를 제공하여 애플리케이션 서버가 다음 메시지 또는 다음의 활동(activity)을 조절할 수 있게 한다.
애플리케이션 서버는 통신 서버가 수신하고 클라이언트에게 전달하는(428) 추가적인 INFO 메시지(426)를 송신할 수 있다. 이들 추가적인 INFO 메시지는 클라이언트가 디스플레이 또는 렌더링할 정보의 표시를 포함할 수도 있고 또는 포함하지 않을 수도 있다. 그 다음 클라이언트는 INFO 메시지가 표시하는 임의의 정보를 디스플레이하거나 렌더링할 수 있다.
그 다음 클라이언트는 통신 서버가 수신하고 애플리케이션 서버에 전달하는(432) OK 메시지(430)로 응답할 수 있다.
또한 클라이언트는 통신 서버가 수신하고 애플리케이션 서버에 전달하는(436) REQUEST 메시지(434)를 송신함으로써 정보를 요청할 수 있다. 그 다음 애플리케이션 서버는 요청된 정보 또는 에러를 포함하는 RESPONSE 메시지(438)를 송신할 수 있는데, 이 메시지를 통신 서버가 수신하고 클라이언트에 전달한다(440).
도 4는 애플리케이션 서버가 정보를 포함하는 메시지 등의 메시지를 수신하고 처리하고 송신할 수 있는 개체인 실시예를 도시한다. 이 실시예에서, 애플리케이션 서버는 클라이언트가 INFO 메시지에 렌더링할 정보를 나타낼 수 있다.
대조적으로, 도 5는 게이트웨이 컴퓨팅 장치 등의 라우팅 에이전트가 이 라우팅 에이전트를 통과하는 메시지에 정보의 표시를 추가하는 실시예를 도시한다. 제1 클라이언트(502)는 INVITE 메시지(510)를 통신 서버(504)에 송신한다. 통신 서버는 INVITE 메시지를 게이트웨이(506) 등의 라우팅 에이전트에 전달한다(512). 라우팅 에이전트는 정보의 표시를 추가하는 등의 INVITE 메시지를 수정하고 제2 클라이언트에 이 수정된 INVITE 메세지(514)를 전달할 수 있다. 예로서, 라우팅 에이전트는 도 4와 관련하여 상술한, 애플리케이션 서버가 INFO 메시지에 정보의 표시를 추가하는 방식과 마찬가지로 INVITE 메시지를 수정할 수 있다. 제1 클라이언트가 대화의 개시자일 수 있고 제2 클라이언트가 대화의 참여자일 수 있다. 개시자는 여러 참여자들과의 대화를 개시할 수 있다.
제2 클라이언트는 INVITE 메시지에 OK 메시지(516)로 응답할 수 있다. 제2 클라이언트로부터 OK 메시지를 수신할 때, 라우팅 에이전트는 정보의 표시를 포함하도록 OK 메시지를 수정하고 이 수정된 OK 메시지(518)를 통신 서버에 전달할 수 있다. 통신 서버는 수신한 그 수정된 OK 메시지를 제1 클라이언트에 전달(520)할 수 있다.
도 4 및 도 5에 도시된 실시예는 또한 클라이언트가 복수의 참여자와의 대화를 개시하는 멀티파티(multiparty) 대화에 이용될 수 있다. 이러한 경우, 메시지에 정보의 표시를 추가하는 컴퓨팅 장치는 복수의 수신자가 이러한 표시를 수신할 수 있도록 하는 방식으로 이를 행할 수 있다.
각종 실시예에서, 통신 서버 또는 클라이언트와 같은 다른 컴퓨팅 장치가 라우팅 에이전트 또는 애플리케이션 서버를 대신하여, 또는 이들에 추가되어 각종 메시지를 수정할 수 있다.
도 6a 내지 6c는 각종 실시예에서의 설비와 관련된 사용자 인터페이스의 양태를 도시하는 사용자 인터페이스 도면이다.
도 6a에 도시된 바와 같이, 클라이언트 컴퓨팅 장치와 관련된 통신 애플리케이션은 그 사용자가 영상 대화에 참여할 때의 윈도우(600)를 디스플레이할 수 있다. 통신 애플리케이션은 그 사용자가 다른 매체 형태를 이용하여 대화에 참여할 때 이 윈도우 또는 다른 윈도우들을 디스플레이할 수 있다. 윈도우는 명령 영역(602), 영상 영역(604), 및 데이터 영역(606)을 가진다. 명령 영역은 윈도우를 조작하고, 대화를 시작하거나 중단하고, 아니면 대화를 제어하기 위한 (예를 들면, 아이콘 또는 메뉴 옵션들과 같은) 여러 가지 명령(commands)을 포함할 수 있다.
통신 애플리케이션은 영상 영역 내에 영상 대화로부터 들어오는 영상을 디스플레이할 수 있다. 들어오는 메시지(예를 들면, INFO 메시지)가 정보가 이용가능함을 나타내면, 통신 애플리케이션은 데이터 영역에 표시된 정보를 렌더링할 수 있다. 예로서, 통신 애플리케이션은 INTERNET EXPLORER 객체를 채용하고 데이터 영역에서 제어하여 메시지에 포함된 URL에 의해 표시된 웹 페이지를 디스플레이할 수 있다. 각종 실시예에서, 통신 애플리케이션은 다른 제어 또는 객체를 적절히 이용하여 메시지에 의해 표시된 정보를 렌더링한다.
도 6b에 도시된 윈도우는 영상 및 데이터 영역이 탭으로 된 영역(tabbed regions)으로 분리되어 있는 점을 제외하고는 도 6a에 도시된 윈도우와 유사하다. 사용자는 탭 영역(608)에서 원하는 영역을 식별함으로써 디스플레이될 영역을 선택할 수 있다. 예로서, 영상 탭(610)을 선택하면 영상 영역이 디스플레이된다. 데이터 탭(612)을 선택하면 데이터 영역이 디스플레이된다.
도 6c에 도시된 윈도우는 영상 및 데이터 영역이 2개의 별개의 윈도우로 분리된다는 점을 제외하고는 도 6a에 도시된 윈도우와 유사하다. 사용자는 이들 윈도우 각각을 개별적으로 조작할 수 있을 것이다.
각종 사용자 인터페이스들이 도시되었지만, 다른 사용자 인터페이스들도 가능하다. 예로서, 사용자 인터페이스는 INTERNET EXPLORER, 고객 서비스 애플리케이션 등과 같은 다른 애플리케이션에 포함될 수 있다.
도 7 내지 도 10은 이 설비가 호출하는 각종 루틴들을 도시하는 흐름도이다. 도 7은 각종 실시예에서의 설비에 의해 호출되는 connect 루틴을 예시하는 흐름도 이다. 클라이언트 애플리케이션은 사용자가 애플리케이션 서버 또는 다른 클라이언트 컴퓨팅 장치와 같은 다른 컴퓨팅 장치와 접속하라고 클라이언트 애플리케이션에 명령할 때 connect 루틴(700)을 호출할 수 있다. 이 루틴은 블록(702)에서 시작한다.
블록(704)에서, 루틴은 주소를 수신한다. 예로서, 루틴은 사용자가 대화를 시작하기를 원하는 컴퓨팅 장치의 전화 번호, IP 주소, 또는 기타 표시자를 수신할 수 있다.
블록(706)에서, 루틴은 표시된 주소에 접속하려고 시도한다. 예로서, 루틴은 SIP INVITE 메시지가 표시된 주소로 송신되도록 할 수 있다. 대화의 개시자는 다른 컴퓨팅 장치에 접속하려고 시도하기 위하여 SIP INVITE 메시지를 송신한다. 대안으로, 루틴은 표시된 주소로 VoIP 전화를 걸 것을 시도할 수 있다.
블록(708)에서, 루틴은 결과 메시지를 수신한다. 예로서, 루틴은 블록(706)에서 메시지가 송신되었던 주소에 위치한 컴퓨팅 장치로부터 메시지를 수신할 수 있다.
판정 블록(710)에서, 루틴은 주소에 접속되었는지를 판정한다. 예로서, 루틴은 블록(708)에서 수신한 결과 메시지에 기초하여 판정을 할 수 있다. SIP를 이용할 때, 루틴은 OK 메시지를 수신할 수 있다. 루틴이 접속되었다고 판정하면, 루틴은 블록(712)으로 계속된다. 그렇지 않으면, 루틴은 이 루틴이 복귀하는 블록(720)으로 계속된다.
판정 블록(712)에서, 루틴은 블록(708)에서 수신한 메시지가 데이터를 표시 하는지를 판정한다. 예로서, 정보가 이용가능한 URL를 나타내는 SIP INFO 메시지가 루틴에 의해 데이터를 표시한다고 판정된다. 이 경우에는, 루틴은 블록(714)으로 계속된다. 아닐 경우, 루틴은 블록(718)으로 계속된다.
블록(714)에서, 루틴은 데이터 팬(pane)(예를 들면, 데이터 영역)을 통신 애플리케이션에 추가한다. 각종 실시예에서, 루틴은 정보가 사용자에게 제공될 수 있는 대화 윈도우, 다른 윈도우, 또는 기타 위치에 데이터 영역을 디스플레이할 수 있다.
블록(716)에서, 루틴은 display_data 서브루틴을 호출한다. 각종 실시예에서, 루틴은 display_data 서브루틴에 데이터가 검색될 수 있는 위치의 표시를 제공할 수 있다. 예로서, 루틴은 결과 메시지로 수신하였던 URL을 제공할 수 있다. display_data 서브루틴은 도 8과 관련하여 이하 더 상세히 기술된다.
블록(718)에서,루틴은 대화를 시작한다. 예로서, 접속을 구축하였던 루틴은 사용자가 텍스트를 타이핑하고, 말하고, 영상 이미지를 송신하는 등을 할 수 있게 해준다. 그 다음 사용자가 제공하는 입력은 블록(704)에서 표시되었던 주소를 가지는 컴퓨팅 장치에 전달될 수 있다.
블록(720)에서, 루틴이 복귀된다.
도 8은 각종 실시예에서의 설비에 의해 호출되는 display_data 루틴을 도시하는 흐름도이다. 클라이언트 통신 애플리케이션은 애플리케이션 서버 또는 기타 컴퓨팅 장치 등으로부터 클라이언트가 수신한 메시지에 표시된 정보를 디스플레이하기 위한 display_data 루틴(800)을 호출할 수 있다. 루틴은 블록(802)에서 시작 된다.
블록(804)에서, 루틴은 데이터가 검색될 위치의 표시를 수신한다. 예로서, 루틴은 웹 페이지가 검색될 수 있는 URL을 수신한다.
판정 블록(806)에서, 루틴은 데이터가 디스플레이되어야 할지를 판정한다. 예로서, 루틴은 인트라넷 상에 또는 보안된 인터넷 사이트에 위치된 웹 페이지를 식별하는 URL은 디스플레이될 수 있지만, 다른 웹 페이지들은 디스플레이될 수 없다고 판정할 수 있다. 데이터가 디스플레이될 수 있다면, 루틴은 블록(808)으로 계속된다. 그렇지 않다면, 루틴은 이 루틴이 복귀되는 블록(810)에서 계속된다.
블록(808)에서, 루틴은 데이터를 검색하고 디스플레이한다. 각종 실시예에서, 루틴은 오디오, 영상 또는 임의의 기타 유형의 미디어 등의 다른 정보를 검색하고 렌더링할 수 있다.
블록(810)에서, 루틴이 복귀한다.
도 9는 각종 실시예에서의 설비와 관련된 애플리케이션 서버에 의해 호출되는 indicate_data 루틴을 도시하는 흐름도이다. 애플리케이션 서버는 데이터가 대화와 관련하여 이용될 수 있음을 클라이언트에 표시하기 위한 루틴(900)을 호출한다. 루틴은 블록(902)에서 시작한다.
블록(904)에서, 루틴은 INVITE 메시지를 수신한다. 예로서, 루틴은 클라이언트가 애플리케이션 서버와의 대화를 개시할 때 INVITE 메시지를 수신할 수 있다.
판정 블록(906)에서, 루틴은 클라이언트가 애플리케이션 서버에 접속하는 것이 허가될지를 판정한다. 예로서, 루틴은 액세스 제어 리스트의 검사 등에 의해서 대화를 개시하고 있는 사용자가 대화를 개시하는 것이 허가될지를 판정할 수 있다. 클라이언트가 대화를 개시하는 것을 허가받았다면, 루틴은 블록(908)으로 계속된다. 그렇지 않다면, 루틴은 블록(916)으로 계속된다.
블록(908)에서, 루틴은 대화를 개시하는 클라이언트에 응답 메시지를 송신한다. 예로서, 루틴은 클라이언트에 OK 메시지를 송신한다.
판정 블록(910)에서, 루틴은 대화와 관련된 클라이언트에 제공될 데이터가 있는지를 판정한다. 예로서, 루틴은 클라이언트의 속성(attributes); 대화를 개시하는 사용자 등에 기초하여 데이터베이스 검사, 및 로직의 평가 등을 행한다. 대화와 관련된 데이터가 존재한다면, 루틴은 블록(912)으로 계속된다. 그렇지 않다면, 루틴은 루틴이 복귀하는 블록(914)으로 계속된다.
블록(912)에서, 루틴은 데이터를 포함한 INFO 메시지를 생성하고 클라이언트에 송신한다. 예로서, 루틴은 INFO 메시지에 URL을 포함시켜 클라이언트가 이 URL에 위치한 정보를 검색할 수 있도록 할 수 있다.
각종 실시예에서, 대화와 관련된 데이터가 존재하지 않는다면, 루틴은 어떠한 데이터도 표시되지 않은 INFO 메시지를 송신할 수 있다(도시 생략).
블록(916)에서, 루틴은 클라이언트에 에러 메시지를 송신한다. 예로서, 루틴은 클라이언트가 애플리케이션 서버와의 대화를 개시할 것을 허가받았음을 표시할 수 있다. 그 다음 루틴은 블록(914)으로 계속된다.
블록(914)에서, 루틴은 복귀한다.
도 10은 각종 실시예에서의 설비와 관련된 게이트웨이 컴포넌트에 의해 호출 되는 indicate_data 루틴을 도시하는 흐름도이다. 게이트웨이와 같은 라우팅 에이전트는 데이터를 나타내기 위한 루틴(1000)을 호출할 수 있다. 이 루틴은 블록(1002)에서 시작한다.
블록(1004)에서, 루틴은 메시지를 수신한다. 예로서, 루틴은 클라이언트, 통신 서버, 또는 기타 장치로부터 메시지를 수신할 수 있다.
판정 블록(1006)에서, 루틴은 수신된 메시지가 전달되어야 하는지를 판정한다. 예로서, 루틴은 대화를 개시한 사용자가 대화를 개시하는 것을 허가받았는지를 판정할 수 있다. 대안으로, 루틴은 컴퓨팅 장치와 같은, 메시지에 대한 목적지가 대화 개시 메시지를 수신할 것을 허가받았는지를 판정할 수 있다. 메시지를 전달하는 것이 괜찮다면, 루틴은 블록(1008)으로 계속된다. 그렇지 않다면, 루틴은 이 루틴이 복귀하는 블록(1016)으로 계속된다.
판정 블록(1008)에서, 루틴은 수신된 메시지가 INVITE 메시지인지를 판정한다. 메시지가 INVITE 메시지라면, 루틴은 블록(1010)으로 계속된다. 그렇지 않다면, 루틴은 블록(1018)으로 계속된다.
판정 블록(1010)에서, 루틴은 대화와 관련된 데이터가 있는지를 판정한다. 예로서, 루틴은 데이터베이스로부터 정보를 검색, 로직(logic)을 평가, 등을 행함으로써 이러한 판정을 할 수 있다. 대화와 관련된 데이터가 존재한다면, 루틴은 블록(1012)으로 계속된다. 그렇지 않다면, 루틴은 블록(1014)으로 계속된다.
블록(1012)에서, 루틴은 데이터가 이용가능함으로 나타내도록 수신된 INVITE 메시지를 수정한다. 예로서, 루틴은 수신된 INVITE 메시지의 본문에 URL을 배치할 수 있다.
블록(1014)에서, 루틴은 INVITE 메시지를 전달한다. 예로서, 루틴은 블록(1012)에서 수정된 메시지를 전달한다. 그 다음 이 루틴이 복귀되는 블록(1016)으로 계속된다.
판정 블록(1018)에서, 루틴은 메시지가 라우팅 에이전트(예를 들면, 게이트웨이)가 이전에 메시지 표시 등을 위하여 수정하였던 INVITE 메시지에 대한 응답으로 수신된 OK 메세지인지를 판정한다. 메시지가 수정된 INVITE 메시지에 대한 응답으로 수신된 OK 메시지라면, 루틴은 블록(1020)으로 계속된다. 그렇지 않으면, 루틴은 블록(1022)으로 계속된다.
블록(1020)에서, 루틴은 데이터가 이용가능함을 나타내도록 OK 메시지를 수정한다. 예로서, 루틴은 OK 메시지의 본문부(body section)에 URL을 추가할 수 있다.
블록(1022)에서, 루틴은 OK 메시지를 전달한다. 예로서, 루틴은 블록(1020)에서 수정된 OK 메시지를 전달한다.
그 다음 루틴은 이 루틴이 복귀하는 블록(1016)으로 계속된다.
당업자들은 도 7 내지 10에 도시되고 앞서 설명한 로직은 다양한 방식으로 대체될 수 있다고 인식할 것이다. 예를 들면, 순서는 재배치될 수 있고, 일부 단계들은 병렬로 수행될 수 있으며, 도시된 로직을 생략할 수도 있거나, 다른 로직이 포함될 수도 있는 등이다.
본원 발명의 요지는 구조적인 특징 및/또는 방법론적인 행위에 특정된 언어 로 기술되었으나, 첨부된 특허청구범위에 정의된 본원 발명의 요지는 상술한 특정 특징 또는 행위에 반드시 제한되어야 하는 것은 아니라고 이해되어야 한다. 오히려, 상술한 특정 특징 및 행위는 특허청구범위를 구현하는 예시적인 형태로서 개시된 것이다. 따라서, 본 발명은 첨부된 특허청구범위에 의한 것을 제외하고는 제한되지 않는다.

Claims (20)

  1. 컴퓨팅 시스템에 의해 수행되는, 데이터를 대화에 통합시키기 위한 방법으로서,
    음성 통신 애플리케이션을 실행하는 컴퓨팅 장치가, VoIP(Voice over Internet Protocol)를 통해 음성 대화를 시작하기 위해 초대 메시지를 응답 컴퓨팅 장치로 전송하는 단계;
    상기 대화를 시작하는 단계;
    VoIP를 통한 상기 음성 대화의 일부로서 상기 응답 컴퓨팅 장치로부터 상기 컴퓨팅 장치가 수신하는 후속 메시지 내에서, 상기 음성 대화와 연관된 URL(uniform resource locator)을 수신하는 단계;
    상기 음성 통신 애플리케이션의 제어하에서, 윈도우를 열고 상기 URL과 연관된 웹페이지를 상기 열린 윈도우 내에 디스플레이하는 단계;
    상기 컴퓨팅 장치를 사용하는 사용자로부터, 인간 운영자(operator)와 연결하기 위한 요청을 수신하는 단계; 및
    상기 통신 애플리케이션에 의해, 미리 수신된 상기 URL 및 상기 웹페이지의 일부에 대한 표시를 상기 응답 컴퓨팅 장치에 전송하여, 상기 응답 컴퓨팅 장치가 상기 URL 및 상기 컴퓨팅 장치에서 상기 사용자가 본 상기 웹페이지의 일부를 상기 인간 운영자에게 확인시키도록 하는 단계
    를 포함하는 데이터 통합 방법.
  2. 제1항에 있어서,
    상기 응답 컴퓨팅 장치는 대화형 음성 응답(IVR) 애플리케이션을 제공하는,
    데이터 통합 방법.
  3. 제2항에 있어서,
    상기 URL은 상기 IVR 애플리케이션을 통해 상기 사용자에 의해 이루어진 선택과 연관된 세부사항을 제공하는 리소스를 식별하는,
    데이터 통합 방법.
  4. 실행될 때, 방법을 수행하는 컴퓨터-실행가능한 명령어를 저장하는 컴퓨터-판독가능한 메모리로서, 상기 방법은
    음성 통신 애플리케이션을 실행하는 컴퓨팅 장치가, VoIP(Voice over Internet Protocol)를 통해 음성 대화를 시작하기 위해 초대 메시지를 응답 컴퓨팅 장치로 전송하는 단계;
    상기 대화를 시작하는 단계;
    VoIP를 통한 상기 음성 대화의 일부로서 상기 응답 컴퓨팅 장치로부터 상기 컴퓨팅 장치가 수신하는 후속 메시지 내에서, 상기 음성 대화와 연관된 URL(uniform resource locator)을 수신하는 단계;
    상기 음성 통신 애플리케이션의 제어하에서, 윈도우를 열고 상기 URL과 연관된 웹페이지를 상기 열린 윈도우 내에 디스플레이하는 단계;
    상기 컴퓨팅 장치를 사용하는 사용자로부터, 인간 운영자(operator)와 연결하기 위한 요청을 수신하는 단계; 및
    상기 통신 애플리케이션에 의해, 미리 수신된 상기 URL 및 상기 웹페이지의 일부에 대한 표시를 상기 응답 컴퓨팅 장치에 전송하여, 상기 응답 컴퓨팅 장치가 상기 URL 및 상기 컴퓨팅 장치에서 상기 사용자가 본 상기 웹페이지의 일부를 상기 인간 운영자에게 확인시키도록 하는 단계
    를 포함하는
    컴퓨터-판독가능한 메모리.
  5. 시스템으로서,
    하나 이상의 프로세서 및 메모리;
    음성 통신 애플리케이션을 실행하는 컴퓨팅 장치에서 실행되는 컴포넌트로서, VoIP(Voice over Internet Protocol)를 통해 음성 대화를 시작하기 위해 초대 메시지를 응답 컴퓨팅 장치로 전송하도록 구성된 컴포넌트;
    상기 대화를 시작하도록 구성된 컴포넌트;
    VoIP를 통한 상기 음성 대화의 일부로서 상기 응답 컴퓨팅 장치로부터 상기 컴퓨팅 장치가 수신하는 후속 메시지 내에서, 상기 음성 대화와 연관된 URL(uniform resource locator)을 수신하도록 구성된 컴포넌트;
    상기 음성 통신 애플리케이션의 제어하에서, 윈도우를 열고 상기 URL과 연관된 웹페이지를 상기 열린 윈도우 내에 디스플레이하도록 구성된 컴포넌트; 및
    상기 컴퓨팅 장치를 사용하는 사용자로부터, 인간 운영자(operator)와 연결하기 위한 요청을 수신하도록 구성된 컴포넌트;
    를 포함하되,
    상기 통신 애플리케이션은 미리 수신된 상기 URL 및 상기 웹페이지의 일부에 대한 표시를 상기 응답 컴퓨팅 장치에 전송하여, 상기 응답 컴퓨팅 장치가 상기 URL 및 상기 컴퓨팅 장치에서 상기 사용자가 본 상기 웹페이지의 일부를 상기 인간 운영자에게 확인시키도록 하는
    시스템.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020097005835A 2006-09-22 2007-09-05 데이터를 대화에 통합시키기 위한 방법, 시스템 및 컴퓨터 판독가능 매체 KR101437189B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/534,630 US8576851B2 (en) 2006-09-22 2006-09-22 Integrating data with conversations
US11/534,630 2006-09-22
PCT/US2007/077667 WO2008036510A1 (en) 2006-09-22 2007-09-05 Integrating data with conversations

Publications (2)

Publication Number Publication Date
KR20090054451A KR20090054451A (ko) 2009-05-29
KR101437189B1 true KR101437189B1 (ko) 2014-09-03

Family

ID=39200822

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097005835A KR101437189B1 (ko) 2006-09-22 2007-09-05 데이터를 대화에 통합시키기 위한 방법, 시스템 및 컴퓨터 판독가능 매체

Country Status (4)

Country Link
US (1) US8576851B2 (ko)
KR (1) KR101437189B1 (ko)
CA (1) CA2658851C (ko)
WO (1) WO2008036510A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8576851B2 (en) 2006-09-22 2013-11-05 Microsoft Corporation Integrating data with conversations
US20090168778A1 (en) * 2007-12-28 2009-07-02 Zulfiqar Ahmed Extending communication protocols

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050041603A1 (en) * 2003-08-18 2005-02-24 Cisco Technology, Inc. Supporting enhanced media communications
KR20050079882A (ko) * 2004-02-07 2005-08-11 한국전자통신연구원 에스아이피 프리젠스 기반 인스턴트 메시지 및 인터넷전화 서비스 클라이언트 시스템
KR20060051816A (ko) * 2004-09-30 2006-05-19 아바야 테크놀러지 엘엘씨 음성 신호와 스크린 이미지를 조화롭게 제공하는 방법
US20060182084A1 (en) 2005-02-11 2006-08-17 Microsoft Corporation Method and system for placing restrictions on sessions

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370563B2 (en) * 1996-09-30 2002-04-09 Fujitsu Limited Chat system terminal device therefor display method of chat system and recording medium
US6212548B1 (en) * 1998-07-30 2001-04-03 At & T Corp System and method for multiple asynchronous text chat conversations
US6879994B1 (en) * 1999-06-22 2005-04-12 Comverse, Ltd System and method for processing and presenting internet usage information to facilitate user communications
US6772438B1 (en) * 1999-06-30 2004-08-03 Microsoft Corporation Method and apparatus for retrieving data from a broadcast signal
US6496851B1 (en) * 1999-08-04 2002-12-17 America Online, Inc. Managing negotiations between users of a computer network by automatically engaging in proposed activity using parameters of counterproposal of other user
US6393412B1 (en) * 1999-09-23 2002-05-21 Peter Deep Method for allowing users to purchase professional services in a private chat room through a service brokerage via the internet
EP1089517B1 (en) * 1999-10-01 2005-12-14 Nortel Networks Limited Establishing connections accross a communications network
US6512818B1 (en) * 1999-11-17 2003-01-28 Mci Worldcom, Inc. Method and system for releasing a voice response unit from a protocol session
US6721705B2 (en) * 2000-02-04 2004-04-13 Webley Systems, Inc. Robust voice browser system and voice activated device controller
US6697840B1 (en) * 2000-02-29 2004-02-24 Lucent Technologies Inc. Presence awareness in collaborative systems
US7240093B1 (en) * 2000-02-29 2007-07-03 Microsoft Corporation Use of online messaging to facilitate selection of participants in game play
US6870848B1 (en) * 2000-06-07 2005-03-22 Nortel Networks Limited Method and apparatus for call processing in response to a call request from an originating device
US20040260781A1 (en) * 2000-12-14 2004-12-23 Shostack Ronald N. Web based dating service with weighted interests matching
US6931114B1 (en) * 2000-12-22 2005-08-16 Bellsouth Intellectual Property Corp. Voice chat service on telephone networks
US6865681B2 (en) * 2000-12-29 2005-03-08 Nokia Mobile Phones Ltd. VoIP terminal security module, SIP stack with security manager, system and security methods
US20020095465A1 (en) * 2001-01-16 2002-07-18 Diane Banks Method and system for participating in chat sessions
US20020163538A1 (en) * 2001-05-07 2002-11-07 Koninklijke Philips Electronics N.V. Electronic mail guide
US20030051037A1 (en) * 2001-06-12 2003-03-13 Mukesh Sundaram Open portal interface manager
US7590692B2 (en) * 2001-07-09 2009-09-15 Dialogic Corporation Conferencing architecture employing media servers and enhanced session initiation protocol
DE10148469A1 (de) * 2001-10-01 2003-04-30 Siemens Ag Signalisierungsverfahren und -anordnung
WO2003053004A1 (en) * 2001-12-15 2003-06-26 Thomson Licensing S.A. Videoconference bandwidth selection mechanism
US7092385B2 (en) * 2002-03-12 2006-08-15 Mci, Llc Policy control and billing support for call transfer in a session initiation protocol (SIP) network
WO2003081449A1 (en) * 2002-03-20 2003-10-02 Thomson Licensing S.A. Videoconference system architecture
US6954524B2 (en) * 2002-06-07 2005-10-11 Sbc Properties, L.P. System and method for implementing and accessing call forwarding services
US7324443B2 (en) * 2002-06-17 2008-01-29 Lucent Technologies Inc. Binary protocol for session initiation in a wireless communications system
GB2391420A (en) * 2002-07-25 2004-02-04 Samsung Electronics Co Ltd Method for serving audio and image communication in web browser using session initiation protocol
US9497168B2 (en) * 2002-07-30 2016-11-15 Avaya Inc. Method and apparatus for supporting communications between a computing device within a network and an external computing device
US7844662B2 (en) * 2002-10-17 2010-11-30 At&T Intellectual Property Ii, L.P. Merging instant messaging (IM) chat sessions
US7139806B2 (en) * 2002-10-10 2006-11-21 Motorola, Inc. Communication system for providing dynamic management of contacts and method therefor
GB0230301D0 (en) * 2002-12-30 2003-02-05 Nokia Corp Streaming media
US8661079B2 (en) * 2003-02-20 2014-02-25 Qualcomm Incorporated Method and apparatus for establishing an invite-first communication session
US7154864B2 (en) * 2003-02-28 2006-12-26 Nokia Corporation Method and apparatus for providing conference call announcement using SIP signalling in a communication system
US20040249949A1 (en) * 2003-03-27 2004-12-09 Christophe Gourraud Voice and multimedia distribution using Push-To-Talk (PTT) subscribers' group
US7450566B2 (en) * 2003-06-05 2008-11-11 Oracle International Corporation Apparatus and method for providing a unified telephony solution
US20040260819A1 (en) * 2003-06-23 2004-12-23 Nokia Corporation Systems and methods for restricting event subscriptions through proxy-based filtering
US7251254B2 (en) * 2003-09-03 2007-07-31 At&T Corp. Telecommunication network system and method in communication services using session initiation protocol
GB0321414D0 (en) * 2003-09-12 2003-10-15 Ericsson Telefon Ab L M IMS subscriber access control
CA2546790C (en) * 2003-11-19 2011-02-22 Research In Motion Limited Systems and methods for added authentication in distributed network delivered half-duplex communications
US20050114514A1 (en) * 2003-11-21 2005-05-26 Bostrom Kevin L. Advising a network component for control of communication session connection through employment of one or more communication session restrictions
US7508814B1 (en) * 2003-12-30 2009-03-24 At&T Intellectual Property, Ii, L.P. Electronic loop provisioning methods and systems
US20050213580A1 (en) * 2004-03-24 2005-09-29 Georg Mayer System and method for enforcing policies directed to session-mode messaging
US8027335B2 (en) * 2004-05-05 2011-09-27 Prodea Systems, Inc. Multimedia access device and system employing the same
US7840681B2 (en) * 2004-07-30 2010-11-23 International Business Machines Corporation Method and apparatus for integrating wearable devices within a SIP infrastructure
US7738897B2 (en) * 2004-09-17 2010-06-15 Nextel Communications Inc. Broadcast dispatch chatroom
US7568007B2 (en) * 2004-09-29 2009-07-28 International Business Machines Corporation System and method for supporting instant messaging in disconnected modes
US8055778B2 (en) * 2004-09-30 2011-11-08 Siemens Enterprise Communications, Inc. SIP user agent with simultaneous multiple registrations
US20060092895A1 (en) * 2004-10-23 2006-05-04 Lg Electronics Inc. Method for restricting push-to service
WO2006077587A2 (en) * 2005-01-21 2006-07-27 Convergin Israel Ltd. Service convergence across multiple communication domains
US7561696B2 (en) * 2005-07-12 2009-07-14 Microsoft Corporation Delivering policy updates for protected content
US8576851B2 (en) 2006-09-22 2013-11-05 Microsoft Corporation Integrating data with conversations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050041603A1 (en) * 2003-08-18 2005-02-24 Cisco Technology, Inc. Supporting enhanced media communications
KR20050079882A (ko) * 2004-02-07 2005-08-11 한국전자통신연구원 에스아이피 프리젠스 기반 인스턴트 메시지 및 인터넷전화 서비스 클라이언트 시스템
KR20060051816A (ko) * 2004-09-30 2006-05-19 아바야 테크놀러지 엘엘씨 음성 신호와 스크린 이미지를 조화롭게 제공하는 방법
US20060182084A1 (en) 2005-02-11 2006-08-17 Microsoft Corporation Method and system for placing restrictions on sessions

Also Published As

Publication number Publication date
CA2658851C (en) 2014-07-08
KR20090054451A (ko) 2009-05-29
US20080075074A1 (en) 2008-03-27
CA2658851A1 (en) 2008-03-27
WO2008036510A1 (en) 2008-03-27
US8576851B2 (en) 2013-11-05

Similar Documents

Publication Publication Date Title
US7376129B2 (en) Enabling collaborative applications using Session Initiation Protocol (SIP) based Voice over Internet protocol Networks (VoIP)
EP1625512B1 (en) Peer-to-peer dynamic web page sharing
JP5079695B2 (ja) コンテキストによる電話の増補
US7236574B2 (en) Method and system for providing communication services for hearing-impaired parties
US8064584B2 (en) Method and apparatus for cross channel data processing
US8379544B2 (en) Communications
US8977970B2 (en) Method and system for handling media in an instant messaging environment
KR101437189B1 (ko) 데이터를 대화에 통합시키기 위한 방법, 시스템 및 컴퓨터 판독가능 매체
EP1487167B1 (en) Method for providing additional services to a called user terminal via an application server, a related call session control network element, a related primary application server
EP3672164B1 (en) Communication solution
JP6277458B1 (ja) Urlを用いたチャットのコネクション確立方法、サーバ及びプログラム
Marzec et al. Application of the SIP protocol in telecommunication, based on a image transmitting application
AU2004244194B2 (en) Peer-to-peer dynamic web page sharing

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 5