KR20150020130A - 동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출 - Google Patents

동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출 Download PDF

Info

Publication number
KR20150020130A
KR20150020130A KR20140105389A KR20140105389A KR20150020130A KR 20150020130 A KR20150020130 A KR 20150020130A KR 20140105389 A KR20140105389 A KR 20140105389A KR 20140105389 A KR20140105389 A KR 20140105389A KR 20150020130 A KR20150020130 A KR 20150020130A
Authority
KR
South Korea
Prior art keywords
communication session
application
user
message
communication
Prior art date
Application number
KR20140105389A
Other languages
English (en)
Inventor
하쉬 브이 멘디라타
고든 알 브런슨
라제쉬와리 에다마다카
Original Assignee
아바야 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아바야 인코포레이티드 filed Critical 아바야 인코포레이티드
Publication of KR20150020130A publication Critical patent/KR20150020130A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Telephonic Communication Services (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)

Abstract

애플리케이션 시퀀스에 포함시킬 애플리케이션들을 선택하는 시스템 및 방법이 기술된다. 선택된 애플리케이션들은 하나 이상의 특징을 통신 세션에 제공하며 애플리케이션 시퀀스를 위해 선택된 애플리케이션들의 순서는 적어도 부분적으로 하나 이상의 동적 파라미터에 종속한다. 애플리케이션 시퀀스를 위해 동적 파라미터를 고려함으로써 사용자 식별자와 같은 정적 파라미터를 기반으로 하는 통상적인 시퀀싱에 대해 더욱 융통성 있는 대안을 제공한다.

Description

동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출{INVOCATION OF SEQUENCED APPLICATIONS BASED ON DYNAMIC PARAMETERS}
본 발명은 일반적으로 통신에 관한 것으로, 특히 세션 개시 프로토콜 통신(Session Initiation Protocol communications)에 관한 것이다.
세션 개시 프로토콜(Session Initiation Protocol ("SIP"))은 많은 종류의 실시간 통신 세션을 설정하기 위한 개방된 시그널링 프로토콜(open signaling protocol)이다. SIP를 이용하여 설정될 수 있는 통신 세션들의 형태의 예는 음성, 비디오, 채팅, 및/또는 인스턴트 메시징을 포함한다. 이러한 통신 세션은 퍼스널 컴퓨터, 랩탑 컴퓨터, 개인 휴대 정보 단말, 전화기, 모바일 폰, 셀룰러 폰, 또는 스마트폰 등과 같은 어떤 형태의 통신 장치에서도 실행될 수 있다. SIP의 한가지 주요한 특징은 최종 사용자의 등재되어 있는 어드레스(end-user's Address of Record (AoR))를 모든 통신을 위한 단일의 통합 공개 어드레스(single unifying public address)로서 사용하는 기능이다. 그래서, SIP-강화된 통신의 세계에서, 사용자의 AOR는 사용자를 그 사용자와 연관된 모든 통신 장치들에 링크시켜주는 단일 어드레스가 되고 있다. 이러한 AOR를 이용하여, 연락자(contactor)는 고유 장치 어드레스 또는 전화번호 각각을 알아야 필요 없이 사용자의 통신 장치들 중 임의의 한 장치에 도달할 수 있다.
애플리케이션 또는 특징이 통신 세션을 설정하는 동안 그 세션에 삽입 또는 포함된다는 사실 때문에 많은 SIP 통신이 강화된다. 통신 세션에 애플리케이션들을 포함시키면 이 애플리케이션들이 통신 세션의 설정 중에 순차적으로 호출되기 때문에 통상 애플리케이션 시퀀싱(application sequencing)이라고 지칭된다. 몇몇 사례에서, 애플리케이션들은 SIP 네트워크를 관리하는 기업에서 소유되고 운용된다. 몇몇 사례에서, 애플리케이션들은 제3 자 판매 회사들(third-party vendors)에 의해 제공될 수 있다. 어느 경우든, 애플리케이션들이 통신 세션에 포함되는 전통적인 방식은 통신 세션 설정 단계 중에 이들 애플리케이션들이 이를 통신 세션의 시그널링 및 미디어 경로에 삽입할 수 있도록 한다.
통신 세션을 위해 활용될 수 있는 애플리케이션들의 예시적인 형태는, 제한없이, 호 기록 애플리케이션, 통신 로그 서비스, 회의 애플리케이션, 보안 애플리케이션, 암호화 애플리케이션, 협업 애플리케이션, 화이트보드 애플리케이션, 이동도 애플리케이션, 프레즌스 애플리케이션(presence applications), 미디어 애플리케이션, 메시징 애플리케이션, 브릿징 애플리케이션, 및 통신을 보충 또는 강화할 수 있는 모든 다른 형태의 애플리케이션을 포함한다.
사용자를 위해 프로비젼된 원하는 특징에 기초한 기설정된 일련의 애플리케이션들을 통해 호 및 다른 SIP-기반 세션을 시퀀스하는 것은 IP-멀티미디어 서브시스템(IP-Multimedia Subsystem (IMS)) 네트워크에서 그리고 아바야(Avaya)와 같은 기업 통신 솔루션의 프로바이더에 의해 사용된 강력한 개념이다. 애플리케이션 시퀀싱은 시퀀스의 앞 또는 뒤에서, 어느 사용자가 특징을 제안 받았는지 또는 다른 특징들이 다른 시퀀스된(sequenced) 애플리케이션들에 의해 또한 제안될 수 있는지의 여부와 무관하게 주어진 순서대기된 어플리케이션들이 그 자체 특징의 로직에 주력하게 해줄 수 있다. 불행하게도, 현재 이용가능한 애플리케이션 시퀀싱 솔루션은 매우 유연하지 않아서, 그의 활용이 제한되고 있다.
전술한 사안과 다른 문제에 대하여 본 출원에서 제시된 실시예가 고려되었다. 특히, 본 발명의 실시예는, 전화 중인 사용자에게 할당된 사전에 프로비젼된 정적인 순서의 애플리케이션들에 기초한다기 보다는, 몇몇 상황에서 통신 세션이 설정되는 순간에 동적 파라미터를 확인함으로써 애플리케이션 시퀀스에서 특정 다음 애플리케이션을 선택하는 것이 유익할 것이라는 것을 인식한다. 애플리케이션 시퀀싱에 영향을 미치는 것으로 분석될 수 있는 동적 파라미터(dynamic parameters)의 비제한적인 예는 다음의 것, 즉, 호(call)가 발신하는 세계의 영역; 특정 네트워크 영역에서 요청되는 대역폭의 양 또는 형태; 호(또는 다른 진행 중인 호)의 우선순위 레벨(precedence level); 호에 이미 시퀀스된 서버들의 관련성(affinity of servers); 호가 모바일 장치에서 발신하는지 또는 모바일 장치를 향해 전달되는지의 여부; 전화 및/또는 서버의 처리 능력; 호가 긴급 호인지의 여부; 현재 시간 정보; 호가 콜 센터(call center)와 연관되는지, 콜 센터를 향해 전달되는지, 또는 콜 센터로부터 발신하는지의 여부; 상황 정보(context information); 및 이들의 조합을 포함한다.
본 발명의 실시예는 호 셋-업 요청(call set-up request)의 동적 속성에 기초하여 소정의 시퀀스된 애플리케이션들의 자동적인 결정을 가능하게 해준다. 특히, 본 발명의 실시예는 만일 다른 파라미터가 사용자 ID보다 더 중요하다면 사용자 ID와 다른 정보에 기초하여 애플리케이션들을 불러오는 융통성을 제공한다.
본 발명의 특정한 예가 "호(calls)" 및 "호 셋-업"에 대해 방향을 맞출 것이지만, 본 발명의 실시예는 그렇게 제한되지 않는다는 것을 인식하여야 한다. 특히, 본 출원에 개시된 개념은 실시간 여부(예를 들면, 음성 호, 비디오 호, 회의, 웹회의 등), 근-실시간(near-real-time) 여부(예를 들면, 인스턴트 메시징(Instant Messaging (IM)) 세션, 단문 메시지 서비스(Short Message Service (SMS)) 세션 등), 또는 비실시간 여부(예를 들면, 이메일, 소셜 미디어 대화 및 포스팅 등)와 같은 모든 형태의 연락과 관련하여 애플리케이션 시퀀싱에 이용될 수 있다. 또한, 본 발명의 실시예는 통신 세션을 설정하는 것과 다른 처리 작업과 관련하여 애플리케이션 시퀀싱에도 적용될 수 있다.
SIP-기반 통신 세션에 대하여, 시퀀스된 애플리케이션은 호에 특징을 추가하기 위해 호 셋-업 또는 종료 중에 통신 서버에 의해 특정 순서로 호출될 수 있는 일련의 애플리케이션들 중 하나이다. 애플리케이션 시퀀스는 전형적으로 호의발신 (호출 당사자) 측 및 종료 (피호출 당사자) 측의 사용자 ID에 의해 정의된다. 호가 개시될 때, 호출자의 권한을 가진 세션 매니저(caller's authoritative session manager)는 호출자의 발신 시퀀스에 있는 각각의 애플리케이션을 통해 세션 개시 요청(session initiation request)을 라우트할 수 있고, 그러면 (호출자의 것과 같을 수도 또는 같지 않을 수도 있는) 피호출 당사자의 권한을 가진 세션 매니저(called party's authoritative session manager)는 피호출 당사자의 종료 시퀀스(called party's termination sequence)에 있는 각각의 애플리케이션을 통해 그 요청을 라우트한 다음, 마지막으로 그 호를 피호출 장치로 전달한다. 예를 들어, 시퀀스된 애플리케이션은 사람의 존재감(활동 중, 자리 이탈 중, 통화 중, 휴가 중 등)을 이용하여 인입 호를 적절한 서비스에 라우트하는 애플리케이션, 악의적인 호를 식별하고 차단하는 애플리케이션, 그리고 호 레코더를 불러오는 애플리케이션을 포함할 수 있다. 통상의 시스템에서, 사람에게 적용하는 규칙은 그 사람이 통신을 개시하든 않든지 간에 적용된다.
본 발명의 실시예는 사용자 ID와 다른 파라미터, 이를 테면, 위치, 대역폭, 비상 상황, 시간-기반, 중요/중요치 않음, 이들의 조합, 기타 동적/변동적 파라미터 등에 기초하여 애플리케이션들을 호출함으로써 엄격한 애플리케이션-시퀀싱 정책에 대해 부연 설명한다. 이것은 각종 파라미터를 이용하여 애플리케이션을 시작시키는 융통성을 부여한다(예를 들면, 누군가 특정 장소에 앉아 있는 경우, 사용자의 현재 위치 정보에 기초하여 한 셋의 애플리케이션들이 호출되어야 한다).
시퀀스된 애플리케이션들을 불러오기 위한 파라미터의 비제한적인 예는 다음을 포함할 수 있다.
Figure pat00001
위치
Figure pat00002
호의 중요도
Figure pat00003
모바일 장치
Figure pat00004
대역폭
Figure pat00005
처리 역량
Figure pat00006
비상 호
Figure pat00007
시간 정보
Figure pat00008
콜 센터의 호(또는 다른 것)
Figure pat00009
상황 정보
이것이 유용할 수도 있는 경우의 예는 멀티플 레벨(또는 멀티-레벨) 우선순위 및 선점(Multiple Level (or Multi-Level) Precedence and Preemption (MLPP))과 함께 한 경우이었을 것이다. 군사적 응용으로서 MLPP는 비상 사태의 경우 고위 공직자가 호에 끼어들거나 선점(knock down)하게 해줄 수 있다. 본 발명의 실시예를 활용함으로써, 호가 발생한 곳을 기술하는 로직 및 정보에 기초하여 또는 그 호를 높은 선호도 호로서 식별해주는 다른 정보에 따라서 애플리케이션들이 이동되거나 또는 시작/호출된다.
본 발명의 적어도 몇몇 실시예에 따르면, 방법은 일반적으로,
제1 사용자와 적어도 제2 사용자 사이의 통신 세션과 관련하여 제1 메시지를 수신하는 단계와,
상기 제1 메시지에서 선호된 그리고 그와 연관된 것 중 적어도 하나인 동적 파라미터를 분석하는 단계와,
상기 동적 파라미터의 분석에 기초하여, 상기 통신 세션에 대해 애플리케이션 시퀀스를 결정하는 단계를 포함한다.
몇몇 실시예에서, 동적 파라미터는 모든 시변(time-variable) 값 또는 값들의 집합에 대응할 수 있다. 그러므로, 동적 파라미터는 관련 있을 수도 아니면 관련 없을 수 있는 단일 파라미터 또는 일련의 파라미터들에 대응할 수 있다. 특히, 동적 파라미터는 통신 세션과 연관된 사용자(참가자, 호출자, 피호출자, 회의 진행자(conferencor), 회의 참석자(conferencee), 전달자(transferee), 피전달자(transferor) 등)의 식별자와 다른 모든 변수일 수 있다. 동적 파라미터는 기간의 경과에 기초하여, 이벤트의 발생에 기초하여, 및/또는 사용자 또는 관리자에 의한 변수의 재-관리에 기초하여 변동될 수 있다.
동적 파라미터는 메시지의 헤더, 보디, 또는 트레일러 내 파라미터로서 정의됨으로써, 메시지의 일부분 내에서 기술된 링크(예를 들면, 유니버셜 리소스 로케이터(URL), 유니버셜 리소스 인디케이터(URI) 등)를 가짐으로써, 또는 메시지에서 기술된 파라미터를 검색하라는 명령어(예를 들면, 서버(B)로부터 동적 파라미터(A)를 요청하기, 데이터베이스(Z)와 함께 데이터베이스 쿼리 "ABC"를 수행하기 등)을 받음으로써, 메시지(예를 들면, SIP 메시지)에서 참조 및/또는 그와 연관될 수 있다. 그래서, 동적 파라미터는 메시지 내에서 정의된 그의 값을 가질 수 있거나 아니면 메시지는 값의 위치의 설명 또는 그 값을 검색하라는 명령어를 가질 수 있다. 다시 말해서, 동적 파라미터는 메시지 자체 내에서 자족될 수 있거나 또는 메시지의 외부에 있을 수 있으며, 그 결과로 인해 결정을 위한 추가적인 처리를 필요로 할 수 있다.
"적어도 하나", "하나 이상", 및 "및/또는"라는 구문은 동작에 있어서 연결적인 그리고 분리적인이라는 두 가지의 개방적인 표현이다. 예를 들면, 각각의 표현 "A, B 및 C 중 적어도 하나", "A, B 또는 C 중 적어도 하나", "A, B 및 C 중 하나 이상", "A, B 또는 C 중 하나 이상", 그리고 "A, B 및/또는 C"는 A 단독, B 단독, C 단독, A 및 B 함께, A 및 C 함께, B 및 C 함께, 또는 A, B 및 C 함께를 의미한다.
"하나" 또는 "한 개" 엔티티라는 용어는 하나 이상의 엔티티를 지칭한다. 이와 같이, "하나" (또는 "한 개"), "하나 이상" 그리고 "적어도 하나"라는 용어는 본 출원에서 같은 의미로 사용될 수 있다. 또한 "포함하는", "구비하는", 그리고 "갖는"이라는 용어는 같은 의미로 사용될 수 있다.
본 출원에서 사용된 바와 같은 "자동" 및 그의 파생어는 프로세스 또는 동작이 수행될 때 물질적인 인간의 입력 없이 임의의 프로세스 또는 동작이 이루어지는 것을 말한다. 그러나, 프로세스 또는 동작의 수행이 물질적인 또는 실체가 없는 인간의 입력을 이용할지라도, 그 입력이 그 프로세스 또는 동작의 수행에 앞서 수신되는 경우, 프로세스 또는 동작은 자동적일 수 있다. 만일 그러한 입력이 프로세스 또는 동작이 수행될 방법에 영향을 준다면 인간의 입력은 물질적인 것이라 간주된다. 프로세스 또는 동작의 수행을 승낙하는 인간의 입력은 "물질적인"것이라고 간주되지 않는다.
"등재 어드레스(address of record)" 또는 "어드레스 또는 레코드 URI"("AoR")라는 용어는 사용자에 대응하는 URI를 말한다. 연락(contact) URI(또는 장치 URI)와 달리, AoR에 송신된 요청은 데이터베이스 룩업 및 서비스 및 특징 동작을 요구하며 결과적으로 요청이 하나 이상의 최종(통신) 장치에 송신될 수 있다. AoR는 보통 TO 및 FROM 헤더 필드에서 사용된다. 이것은 어떤 사람에게 도달하는 공통적인 방법이며 주소록에 저장하는데 그리고 부재중 전화를 반환하는데 적합하다.
본 출원에서 사용된 것과 같은 "컴퓨터-판독가능 매체"라는 용어는 명령어를 저장하며/하거나 실행을 위해 프로세스에 제공하는데 참여하는 모든 유형의 저장 및/또는 전송 매체를 말한다. 그러한 매체는 비휘발성 매체, 휘발성 매체, 및 전송 매체를 포함하되 이것으로 제한되지 않는 많은 형태를 취할 수 있다. 비휘발성 매체는, 예를 들면, NVRAM, 또는 자기 또는 광 디스크를 포함한다. 휘발성 매체는 메인 메모리와 같은 다이나믹 메모리를 포함한다. 컴퓨터-판독가능 매체의 공통적인 형태는, 예를 들면, 플로피 디스크, 가요성 디스크, 하드 디스크, 자기 테이프, 또는 모든 다른 자기 매체, 자기-광학 매체, CD-ROM, 모든 다른 광학 매체, 펀치 카드, 종이 테이프, 천공 패턴을 갖는 모든 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 메모리 카드와 같은 고체 상태 매체, 모든 다른 메모리 칩 또는 카트리지, 이하에서 설명되는 캐리어 웨이브, 또는 컴퓨터가 판독할 수 있는 모든 다른 매체를 포함할 수 있다. 이메일에 디지털 파일 첨부 또는 다른 자족적인 정보 아카이브 또는 아카이브들의 집합은 유형의 저장 매체와 대등한 유통 매체(distribution medium)라고 간주된다. 컴퓨터 판독가능 매체가 데이터베이스로서 구성될 때, 데이터베이스는 관계형, 계층형, 및/또는 객체-지향형 등의 모든 형태일 수 있다. 따라서, 본 발명은 본 발명의 소프트웨어 구현예가 저장되어 있는 유형의 저장 매체 또는 유통 매체 및 종래 기술에서 인식되는 등가물들 및 향후의 미디어를 포함하는 것으로 간주된다.
"연락 UR(contact URI)"라는 용어는 장치의 유니버셜 리소스 인디케이터(Universal Resource Indicator ("URI")를 말한다. 장치 URI는 전형적으로 CONTACT 헤더 필드 내에 있으며 소정 기간동안 특정 사용자와 연관된다. 등재 어드레스 URI는 연락 URI와 관련될 수 있거나 또는 속할 수 있다.
본 출원에서 사용된 바와 같은 "결정하다", "계산하다", 및 "산출하다", 그리고 이들의 변형은 같은 의미로 사용되며 모든 형태의 방법론, 프로세스, 수학적 연산 또는 기술을 포함한다.
본 출원에서 사용된 바와 같은 "모듈", "에이전트", 또는 "도구"라는 용어는 모든 공지된 또는 나중에 개발되는 하드웨어, 소프트웨어, 펌웨어, 인공 지능, 퍼지 로직, 또는 그 요소와 연관된 기능을 수행할 수 있는 하드웨어 및 소프트웨어와의 조합을 말한다. 또한, 본 발명이 예시적인 실시예의 관점에서 기술되지만, 본 발명의 개개의 양태는 별개로 청구될 수 있다는 것을 인식하여야 한다.
"유니폼 리소스 식별자(uniform resource identifier)"(URI)는 이름 또는 자원을 식별하는데 사용된 문자열이다.
"유니폼 리소스 로케이터(uniform resource locator)" 또는 "유니버셜 리소스 로케이터(universal resource locator)"(URL)는 인터넷 자원의 참조를 구성하는 특정 문자열이다.
"사용자 에이전트(user agent)"는 세션 개시 프로토콜("SIP")-방식 엔드포인트 장치(Session Initiation Protocol ("SIP")-enabled endpoint device)를 말한다. 사용자 에이전트는 사용자로부터 지시 및/또는 입력을 받고 사용자를 대신하여 에이전트로서 미디어 세션을 셋업하고 해체하는 동작을 행한다.
앞의 설명은 본 발명의 몇몇 양태를 이해하게 해주는 본 발명의 실시예의 간략한 요약이다. 이러한 요약은 포괄적인 것도 아니고 하나도 빠뜨림 없이 완전한 본 발명 및 본 발명의 여러 실시예의 개요도 아니다. 이것은 본 발명의 핵심적이거나 중요한 요소를 식별하려는 것도 아니고 본 발명의 범주를 설명하려는 것도 아니라 본 발명의 선택된 개념을 아래에서 제공된 상세한 설명에 대한 소개로서 간략한 형태로 제공하려는 것이다. 인식하는 바와 같이, 본 발명의 다른 실시예는 앞에서 설명하고 또는 아래에서 상세하게 기술된 특징들 중 하나 이상을 단독으로 또는 조합하여 활용하는 것이 가능하다.
본 발명은 첨부 도면과 함께 기술된다.
도 1은 본 발명의 실시예에 따른 통신 시스템의 블록 구성도이다.
도 2는 본 발명의 실시예에 따른 제1의 통신 방법의 흐름도이다.
도 3은 본 발명의 실시예에 따른 제2의 통신 방법의 흐름도이다.
도 4는 본 발명의 실시예에 따라서 사용된 데이터 구조를 묘사하는 블록 구성도이다.
다음의 설명은 단지 실시예만을 제공할 뿐이며, 청구범위의 범주, 적용 가능성, 또는 구성을 제한하려는 것은 아니다. 오히려, 다음의 설명은 본 기술에서 통상의 지식을 가진 자들에게 실시예를 구현하기 위한 개시 내용의 충분한 설명을 제공할 것이다. 첨부의 청구범위의 정신과 범주를 일탈함이 없이 구성요소의 기능 및 구성에서 다양한 변경이 이루어질 수 있다고 이해된다.
도 1은 본 발명의 실시예에 따른 통신 시스템(100)을 도시한다. 통신 시스템(100)은 (일반적으로 신뢰할 수 없는 또는 안전하지 않은 또는 공중의) 통신 네트워크(108)를 통해 하나 이상의 외부 통신 장치(112)와 통신하는 기업 네트워크(104)를 포함할 수 있다.
통신 네트워크(108)는 패킷 교환 및/또는 회선 교환 네트워크일 수 있다. 예시적인 통신 네트워크(108)는 제한하지 않고 광역 네트워크(Wide Area Network (WAN), 이를 테면, 인터넷, 공중 교환 전화 네트워크(Public Switched Telephone Network (PSTN)), 기존 전화 서비스(Plain Old Telephone Service (POTS)) 네트워크, 셀룰러 통신 네트워크, 보이스 오버 IP(Voice over IP (VoIP)) 네트워크, IMS 네트워크, 또는 이들의 조합을 포함한다. 일 구성에서, 통신 네트워크(108)는 TCP/IP 프로토콜 제품군을 지원하는 공중 네트워크이다.
외부 통신 장치(들)(112)는 일반적으로 "외부"라고 불리는데, 이것은 기업 네트워크(104)를 운영하는 기업의 직접적인 통제 하에 있지도 않거나 또는 기업 네트워크(104) 내에 속한 통신 장치(136)와 비교하여 기업 네트워크(104)와의 낮은 신뢰도를 갖기 때문이다. 외부 통신 장치(112)의 예시적인 형태는 제한 없이 셀룰러 폰, 랩탑, 퍼스널 컴퓨터(PCs), 개인 휴대 정보 단말(PDAs), 디지털 폰, 아날로그 폰, 및 스마트폰 등을 포함한다.
기업 네트워크(104)는 서버 테이블(120)을 포함하는 바운더리 장치(116), 동적 파라미터 분석(128) 및 시퀀싱 룰(132)을 포함하는 통신 서버(124), 하나 이상의 내부 통신 장치(136), 하나 또는 다수개의 애플리케이션(144)을 제공할 수 있는 하나 이상의 애플리케이션 서버(140), 다수개의 기타 서버(152), 및 기업 데이터베이스(148)를 포함할 수 있으며, 이들 모두 (신뢰할 수 있는 또는 안전한 또는 사유의) 근거리 네트워크(LAN)(156)에 의해 상호 연결되어 있다. 도 1에 도시된 기능 중 일부 또는 모두는 단일의 서버에서 함께 수행(co-hosted) 및/또는 함께 상주(co-resident)될 수 있다. 대안으로 또는 부가적으로, 기업 네트워크(104)의 일부 또는 모든 컴포넌트들은 클라우드 컴퓨팅 기술을 통해 가용 상태로 만들어질 수 있다. 예를 들어, 서버들의 일부 또는 모든 기능은 통신 장치(136)와 공존할 수도 있거나 아니면 반드시 그럴 필요가 없을 수 있는 서버들의 클러스터로부터 가용 상태로 만들어질 수 있다. 다시 말해서, 기업 네트워크(104)는 부분적으로 클라우드-기반일 수 있으며 클라우드-기반 네트워크의 자원에의 액세스는 통신 네트워크(108)를 통해 이루어질 수 있다. 도 1의 컴포넌트들의 묘사는 개략적으로 시스템(100)의 컴포넌트들의 논리적인 모습과 같아 보이게 하려는 것이다.
몇몇 실시예에서, 네트워크 바운더리 장치(116)는 초기에 기업 네트워크(104) 내 통신 신호를 통신 세션에 연루된 특정 사용자(예를 들면, 사용자(A) 및/또는 사용자(B))를 서빙하는 책임을 진 통신 서버(124)에 라우팅하는 기능을 수행한다. 예를 들면, 만일 기업의 사용자(사용자(B))가 외부의 외부 통신 장치(112)에 의해 호출되고 있으면, 네트워크 바운더리 장치(116)는 초기에 착신 호(inbound call)를 수신하고, 그 호가 사용자(B)를 향해 전달된다고 판단하고, 서버 테이블(120)을 참조하여 사용자(B)에 맞는 권한을 가진 통신 서버(124)를 식별하고, 그 착신 호를 권한을 가진 통신 서버(124)에 라우트할 수 있다. 마찬가지로, 내부 기업 사용자들(예를 들면, 내부 통신 장치들(136)) 사이의 통신은 먼저 통신 셋-업의 시작 국면 중에 발신 사용자의 권한을 가진 통신 서버(124)에 의해 서비스될 수 있다. 시작 국면이 완료된 후, 통신 셋-업의 종료 국면을 완료하도록 종료 (또는 피호출) 사용자의 권한을 가진 통신 서버(124)가 호출될 수 있다. 몇몇 실시예에서, 발신 및 종료 사용자의 통신 서버(124)는 같을 수도 있지만, 반드시 그럴 필요는 없다. 둘 보다 많은 기업 사용자들이 통신 세션에 연루되어 있는 상황에서, 본 발명의 범주를 일탈함이 없이도 연루된 사용자들 각각의 권한을 가진 통신 서버(124)가 이용될 수 있다. 부가적으로, 각 사용자 마다 권한을 가진 통신 서버(124)는 동일한 기업 네트워크(104) 내에 있거나 또는 공통 기업에 의해 소유되지만 통신 네트워크(108)에 의해 분리되어 있는 다른 기업 네트워크(104) 내에 있을 수 있다.
본 발명의 적어도 몇몇 실시예에 따르면, 통신 요청 내 사용자 식별자의 맵핑이 반드시 네트워크 바운더리 장치(116)에서 발생하지 않아도 된다. 예를 들어, 권한을 가진 서버와 사용자 간의 맵핑은 기업 네트워크(104) 내 네트워크 바운더리 장치(116) "배후"에서 발생할 수 있다.
통신 서버(124)는 사설 교환기(Private Branch eXchange (PBX)), 기업 교환기, 이들의 조합, 또는 원격 통신 시스템 교환기 또는 서버를 포함할 수 있다. 바람직하게 통신 서버(124)는 Communication Manager™, Avaya Aura Communication Manager™ Avaya IP Office™, Communication Manager Branch™, Session Manager™, System Manager™, MultiVantage Express™ 및 이들의 조합을 포함하는, 아바야 인코포레이티드(Avaya Inc.)의 제품군 또는 Avaya Aura™ 애플리케이션과 같은 원격통신 기능을 실행하도록 구성된다.
비록 도 1에는 단지 하나의 통신 서버(124)가 묘사되어 있지만, 단일의 기업 네트워크(104) 내에는 또는 단일의 기업에 의해 소유되고 운영되나 통신 네트워크(108)에 의해 분리되어 있는 복수의 개별 LAN(156) 전체에는 둘 이상의 통신 서버(124)가 제공될 수 있다. 기업 또는 기업 네트워크(104)가 둘 이상의 통신 서버(124)를 포함하는 구성에서, 각각의 서버(124)는 유사한 기능을 포함할 수 있지만, 그의 기능을 모든 기업 사용자들 중 서브셋에만 제공하기 위해 프로비젼될 수 있다. 특히 제1 통신 서버(124)는 기업 사용자들 중 제1 서브셋을 위해 서비스하기 위한 권한을 가질 수 있는 반면 제2 통신 서버(124)는 기업 사용자들 중 제2 서브셋을 위해 서비스하기 위한 권한을 가질 수 있는데, 여기서 사용자들 중 제1 및 제2 서브셋은 일반적으로 공통 사용자를 공유하지 않는다. 이것은 네트워크 바운더리 장치(116)가 서버 테이블(120)을 가지고 있을 수 있다는 것이 한가지 이유이다.
부가적으로, 복수의 서버(124)는 공통 사용자 커뮤니티를 지원할 수 있다. 예를 들면, 사용자들이 반드시 단일의 애플리케이션 서버에 속해 있지 않는 지리적으로 중복하면서 다른 애플리케이션에서, 사용자가 동등한 서버들의 클러스터에 속한 임의의 서버에 의해 서비스 받을 수 있는 클러스터가 있을 수 있다.
각각의 통신 서버(124)는 동적 파라미터 분석(128) 및 그 동적 파라미터 분석(128)으로부터 수신한 입력에 기초하여 애플리케이션 시퀀스 및 애플리케이션 시퀀스에서 다음 번 애플리케이션(144)을 결정하는 시퀀싱 룰(132)를 포함할 수 있다. 특히, 시퀀싱 룰(132)은 특정 형태의 메시지가 수신되었을 때 동적 파라미터 분석(128)에 의해 분석될 하나 이상의 동적 파라미터를 정의할 수 있다. 수신한 메시지는 통신 서버(124)가 권한을 가진 사용자로부터 발생하는 메시지 또는 통신 서버(124)가 권한을 가진 사용자를 향해 전달되는 메시지에 해당할 수 있다. 또한, 시퀀싱 룰(132)은 애플리케이션 시퀀스를 조정 또는 결정하는 것과 관련하여 하나 이상의 동적 파라미터가 분석되어야 하는지 그리고 그렇게 분석될 때를 정의할 수 있다. 바꿔 말하면, 시퀀싱 룰(132)은 애플리케이션 시퀀싱이 전통적인 방식으로 발생하는 - 시퀀싱이 통신 세션에 연루된 사용자들의 식별자에 기초하는 -디폴트 조건을 정의할 수 있다. 시퀀싱 룰(132)은 또한, 만일 있다면, 애플리케이션 시퀀스가 디폴트 애플리케이션 시퀀스와 다르게 변하게 만들어줄 조건을 정의할 수 있는데, 이 경우, 동적 파라미터 분석(128)이 호출된다. 그래서, 만일 소정 조건이 충족되면(예를 들면, 수신한 메시지가 소정의 특성을 가지면, 하루 중 특정 시간이 되면, 기타 등등), 시퀀싱 룰(132)은 디폴트 애플리케이션 시퀀스에서 벗어나고 동적 파라미터 분석(128)로부터 온 입력을 활용하여 현재 조건에 더 적합한 새롭고 다른 애플리케이션 시퀀스를 결정할 수 있다.
몇몇 실시예에서, 시퀀싱 룰(132)은 동적 파라미터 분석(128)에게 지시하여 수신한 메시지를 분석하여 만일 메시지 내에 임의의 동적 파라미터가 존재하는지를 판단하고 이에 더하여 만일 이들 동적 파라미터의 값이 애플리케이션 시퀀싱 판단에 영향을 줄 것인지를 판단하도록 한다. 부가적으로 또는 대안으로, 동적 파라미터 분석(128)은 파라미터의 식별을 수신할 수 있거나 또는 파라미터를 수신한 메시지와 다른 소스(예를 들면, 기업 데이터베이스(148), 다른 서버(152), 등)로부터 검색하라는 명령어를 수신할 수 있다. 그러면 동적 파라미터 분석(128)은 식별된 파라미터(들)의 현재 값을 검색하고 해당하는 값(들)을 애플리케이션 시퀀싱 판단이 이루어질 수 있는 시퀀싱 룰(132)로 반환할 수 있다.
몇몇 실시예에서, 시퀀싱 룰(132)은 권한을 가진 사용자 별 통신 특징 선호도(communication feature preferences)에 대응할 수 있다. 특정 사용자의 시퀀싱 룰(132)은 그 사용자에 대해 권한을 가진 통신 서버(124)에 의해 참조되어, 만일 있다면, 특징들이 (애플리케이션(144)을 통해) 사용자의 통신 세션에 포함되어야 하는지의 여부 그리고 그러한 특징들이 통신 세션에 포함되어야 하는 순서를 결정한다. 통신 서버(124)는 실제로 통신 특징들을 직접 통신 세션을 향해 제공하거나 또는 셋-업 중에 호출되고 통신 세션 중에 사용될 애플리케이션 시퀀스를 결정할 수 있다.
시퀀싱 룰(132)은 선호도의 리스트일 수 있고, 통신 선호도를 수록하는 테이블일 수 있고, 또는 모든 다른 적합한 포맷으로 되어 있을 수 있다. 더욱이, 시퀀싱 룰(132)은 사용자에 의해 및/또는 권한을 가진 개인에 의해 프로비젼될 수 있다.
또한 임의의 데이터 구조는, 제한하지 않고, 프리미티브, 복합, 또는 추상 데이터 유형들, 선형 데이터 구조, 트리 데이터 구조, 해시, 및 그래프 등을 포함하는 각종 선호도 테이블을 제공하는데 사용될 수 있다.
LAN(156)은 LAN(156)과 통신 네트워크(108) 사이에 위치한 게이트웨이 및/또는 방화벽에 의해 신뢰할 수 없는 당사자들에 의한 침입으로부터 안전을 보호받을 수 있다. 몇몇 실시예에서, 바운더리 장치(116)는 게이트웨이 및/또는 방화벽의 기능을 포함할 수 있다. 몇몇 실시예에서, 개개의 게이트웨이 또는 방화벽이 바운더리 장치(116)와 통신 네트워크(108) 사이에서 제공될 수 있다.
기타 서버(152)는 이메일 서버, 음성 메일 서버, 일정 서버, 회의 서버, 및 특정 서비스를 클라이언트 장치에 제공하는 것으로 알려진 다른 형태의 서버들을 포함할 수 있다. 몇몇 실시예에서, 기타 서버(152)는 또한 통신 세션에서 사용하기 위한 하나 이상의 애플리케이션(144)을 제공하는 애플리케이션 서버(140)로 간주될 수도 있다.
내부 통신 장치(136)는 기업에 의해 프로비젼되고, 종종 기업에 의해 소유된 점을 제외하고, 외부 외부 통신 장치(112)와 유사 또는 같을 수 있다. 외부 통신 장치(112)의 예시적인 형태는, 제한하지 않고, 모든 가능한 폰, 하드폰, 소프트폰 및/또는 디지털 폰을 포함한다. 적합한 텔레폰의 예는 1600 TM, 2400 TM, 4600 TM, 5400 TM, 5600TM, 9600™, 9620TM, 9630TM, 9640TM, 9640GTM, 9650TM, 및 Quick EditionTM 텔레폰, IP 무선 텔레폰(예를 들면, 아바야 인코포레이티드의 IP DECT TM 폰), 비디오 폰(예를 들면, 아바야 인코포레이티드의 Videophone™, 및 아바야 인코포레이티드의 소프트폰을 포함한다.
기업 데이터베이스(148)는 기업 가입자 정보, 이를 테면, 이름, 직책, 전자 주소 정보(예를 들면, 전화번호, 이메일 주소, 인스턴트 메시징 핸들, 및 직통 내선번호 등), 가입자 연락처 리스트(예를 들면, 연락처 이름 및 전자 주소 정보), 및 다른 직원 기록 등을 포함한다. 부가적으로 또는 대안으로, 기업 데이터베이스(148)는 사용자의 현재 상태 정보, 사용자의 통신 능력, 및 동적 파라미터 분석(128)에 의해 검색가능한 임의의 다른 동적 변수를 갖고 있을 수 있다. 몇몇 실시예에서, 데이터베이스(148)는 특정한 구조적인 포맷(예를 들면, 계층적 데이터베이스, SQL 데이터베이스 등) 또는 비구조적인 포맷(예를 들면, 비-SQL 데이터베이스 등)으로 된 데이터를 포함할 수 있다. 데이터베이스는 영구 저장소(디스크)를 포함할 수 있거나 오직 인-메모리 데이터베이스일 수 있다.
적어도 몇몇 실시예에 따르면, 통신 서버(124)는 애플리케이션 시퀀스를 결정할 수 있으며 시퀀싱 룰(132)에 따라서 하나 이상의 애플리케이션들(144)이 통신 세션에서 순서 대기하도록 한다. 특히, 통신 서버(124)는 특정 사용자의 시퀀싱 룰(132)을 분석하고 필요한 애플리케이션(144) 및 그러한 선호도를 이행하는 라우팅을 호출하도록 구성된다. 특히 애플리케이션 시퀀스들 중 하나가 동적 파라미터 또는 복수의 동적 파라미터의 현재 값에 기초하는 경우, 어떤 한 시점에 특정 사용자를 위해 호출된 애플리케이션(144)은 애플리케이션(144)과 다를 수 있거나 또는 다른 한 시점에 동일 사용자를 위해 호출된 애플리케이션(144)의 순서와 다를 수 있다.
일단 애플리케이션 시퀀스가 통신 서버(124)에 의해 결정되면, 통신 서버(124)는 통신-설정 메시지를 애플리케이션 시퀀스 내 제1 애플리케이션(144)에 전달하여, 제1 애플리케이션이 통신 세션의 파라미터를 결정하고, 자신을 통신 세션의 제어 및/또는 미디어 스트림에 삽입하여서 자신을 통신 세션에 속하게 할 수 있다. 일단 제1 애플리케이션이 자신을 통신 세션에 삽입하면, 제1 애플리케이션은 통신-설정 메시지를 다시 통신 서버(124)에 전달하여 (예를 들면, 시퀀싱 룰(132)에 기초하여) 애플리케이션 시퀀스 내 다음 번 애플리케이션을 식별하거나 통신-설정 메시지를 애플리케이션 시퀀스 내 제2 애플리케이션에 직접 전달한다. 대안으로, 또는 부가적으로, 메시지는 다시 전달 될 수 있거나, 또는 거절될 수 있다. 더욱이, 애플리케이션(144)에 의해 당사자 및/또는 미디어 서버가 호에 추가될 수 있다.
이제 도 2를 참조하면, 본 발명의 실시예에 따른 제1 통신 방법이 기술될 것이다. 이 방법은 통신 서버(124)가 제1 세션 셋업 메시지를 수신하는 단계부터 시작한다(단계 204). 몇몇 실시예에서, 통신 서버(124)에서 수신한 제1 메시지는 SIP-기반 통신 세션의 설정과 관련하여 사용된 SIP 메시지 (예를 들면, INVITE, RE-INVITE 등)에 대응할 수 있다. 제1 메시지는 제1 메시지의 발신측 또는 종료측의 처리 중에 수신될 수 있다. 다시 말해서, 제1 메시지는 호출 사용자의 통신 서버(124)에서 수신될 수 있고(발신측 처리) 및/또는 호출된 사용자의 통신 서버(124)에서 수신될 수 있다(수신측 처리).
제1 메시지를 수신하면, 시퀀싱 룰(132)이 조회되어 통신 세션에 필요한 애플리케이션 시퀀스를 결정하는 프로세스를 시작한다. 구체적으로, 시퀀싱 룰(132)은 현재의 조건을 분석할 수 있고 그리고/또는 메시지를 분석하여 이 메시지가 하나 이상의 동적 파라미터를 담고 있는지 아니면 이를 참조하는지 여부를 판단할 수 있다(단계 208). 이러한 분석은, 대안으로, 동적 파라미터 분석(128)에 의해 수행될 수 있다. 이후 동적 파라미터 분석(128)은 (포함되어 있는 경우) 메시지 내 동적 파라미터의 분석을 수행하거나 메시지 내에서 참조된 하나 이상의 동적 파라미터에 대한 값을 찾는다.
몇몇 실시예에서, 동적 파라미터 분석(128)은 하나 또는 다수개의 다른 동적 파라미터를 순차적으로 또는 병렬로 분석할 수 있다. 동적 파라미터 분석(128)에 의해 분석될 수 있는 동적 파라미터의 적합한 예는, 제한하지 않고, 호(call)가 발신하는 세계의 영역; 특정 네트워크 영역에서 요청되는 대역폭의 양 또는 형태; 호(또는 다른 진행 중인 호)의 우선순위 레벨; 호에 이미 시퀀스된 서버들의 관련성(affinity of servers); 호가 모바일 장치에서 발신하는지 또는 모바일 장치를 향해 전달되는지 여부; 전화 및/또는 서버의 처리 능력; 호가 긴급 호인지 여부; 현재 시간 정보; 호가 콜 센터(call center)와 연관되는지, 콜 센터를 향해 전달되는지, 또는 콜 센터로부터 발원하는지 여부; 상황 정보(context information); 및 이들의 조합을 포함한다.
그런 다음 분석의 결과는 시퀀싱 룰(132)에 반환되어 동적 파라미터가 애플리케이션 시퀀스에 영향을 주어 통신 서버(124)에 의해 호출될 것인지를 판단한다(단계 212). 예로서, 만일 제1 메시지가 외부의 외부 통신 장치(112)(예를 들면, 모바일 장치)에 의해 시작되면, 이러한 정보는 제1 메시지에 포함되어 있을 수 있으며 동적 파라미터 분석(128)은 특정 애플리케이션 시퀀스가 호출되어야 한다고 결정한다. 다른 예로서, 만일 제1 메시지가 특정한 위치에서 및/또는 하루 중 특정 시간에 시작된 것이면, 그리고 이러한 파라미터들의 조합이 시퀀싱 룰(132)에 영향을 준다면, 제1 메시지에 필요한 다른 애플리케이션 시퀀스가 호출되어야 한다. 그러므로, 하나 이상의 동적 파라미터의 현재 값에 따라서, 제1 메시지에 따라 결국에는 설정될 통신 세션에 적합한 애플리케이션 시퀀스가 결정된다.
만일 단계(212)의 질의에 부정적으로 답변되면, 방법은 통신 서버(124)가 디폴트 조건에 따라서 (예를 들면, 단지 호출 사용자 및/또는 호출된 사용자의 식별에만 기초하여) 애플리케이션 시퀀스를 호출하는 단계를 지속한다(단계 216). 한편, 만일 시퀀싱 룰(132)이 동적 파라미터의 값(들)에 의해 영향을 받는다면, 통신 서버(124)는 새로운 애플리케이션 시퀀스를 결정하고(단계 220) 애플리케이션들(144)을 순서화하여 적절한 특징들을 통신 세션에 제공한다(단계 224). 단계(220 및 224)는 한 번에 수행될 수 있으며 시퀀스 내 각각의 애플리케이션은 제1 메시지를 그 시퀀스 내 다음 번 애플리케이션에 전달할 수 있다. 대안으로, 단계(220 및 224)는 시퀀스 내 다음 번 애플리케이션마다 매번 반복적으로 수행될 수 있다. 그래서, 반복적인 구현에서, 통신 서버(124)는 제1 메시지를 시퀀스에서 제1 애플리케이션(144)에 제공할 수 있고 그런 다음 제1 메시지를 다시 제1 애플리케이션(144)로부터 수신할 수 있다. 이후, 시퀀스 내 다음 애플리케이션이 결정될 수 있고, 그 시점 이후 제1 메시지가 다음 번 애플리케이션에 송신될 수 있다. 이러한 왕복 프로세스는 모든 특징들이 고려(예를 들면, 전체 애플리케이션 시퀀스가 호출)될 때까지 지속할 수 있다.
일단 적절한 애플리케이션 시퀀스가 호출되었으면, 방법은 이용되는 통신 프로토콜(예를 들면, SIP)에 따라서 제1 메시지를 목적지 장치에 전송함으로써 계속될 수 있으며 목적지 장치에서 적절한 응답(들)(예를 들면, 200OK, ACK 등)이 생성될 수 있다. 그러면 통신 세션이 설정되고 이 통신 세션에 연루된 당사자들은 그 통신 세션이 끝날 때까지 서로와의 미디어(예를 들면, 음성, 비디오, 텍스트 등)가 허용될 수 있다.
이제 도 3을 참조하면, 본 발명의 실시예에 따른 제2 방법이 기술될 것이다. 다음의 방법이 두 사용자들 사이의 호와 관련하여 기술될 것이지만, 본 발명의 실시예는 그렇게 제한되지 않으며 본 출원에서 기술된 특징들은 셋, 넷, 다섯, 열, 또는 그 이상의 참여자가 있는 복수 당사자의 호에 적용될 수 있다는 것을 인식하여야 한다.
이 방법은 제1 시간(예를 들면, 시간 = T1)에서 제1 사용자(예를 들면, 사용자(A))와 제2 사용자(예를 들면, 사용자(B)) 사이에서 호(또는 다른 통신 세션)의 설정으로부터 시작한다(단계 304). 사용자들 사이에서 설정된 제1 호는 제1 시간(T1)에 결정된 동적 파라미터에 기초한 제1 순서대로 시퀀스된 애플리케이션들을 포함할 수 있다(단계 308). 몇몇 실시예에서, 애플리케이션 시퀀스에서 시퀀스들의 순서는 사용자(A)의 애플리케이션이 제1 순서가 되고 그리고/또는 사용자(B)의 애플리케이션이 제1 순서가 되는 것을 포함할 수 있다. 다시 말해서, 애플리케이션 시퀀스는 이등분, 즉, 발신 절반 그리고 종료 절반을 포함할 수 있다, 여기서 발신 절반은 호 중 사용자(A)의 절반에 해당하며 종료 절반은 호 중 사용자(B)의 절반에 해당한다. 이 실시예에서, 사용자(A)의 애플리케이션들은 모두 사용자(B)의 애플리케이션들에 앞서 순서 대기될 것이며 사용자(A)의 순서는 사용자(B)의 애플리케이션들의 순서에 의존할 수도 아니면 의존하지 않을 수도 있다.
사용자들은 궁극적으로 세션이 끝나고 호가 종료될 때까지 원하는 한 통신 세션에서 연동하는 것이 허용된다(단계 312). 이 단계에서, 한 또는 두 참가자가 전화를 끊을 수도 있고 호 시그널링 및/또는 매체 경로가 해체될 수도 있으며, 그럼으로써 그 호에 이미 할당된 자원(예를 들면, 트렁크, 프로세서, 메모리, 포트 등)이 다른 호에서 활용될 수 있다. 대안으로, 애플리케이션(144)을 통신 세션에 제공하였던 서버들은 다른 사용자들 사이의 다른 통신 세션에서 사용하기 위해 그들의 자원을 넘겨줄 수 있다. 세션의 해체는 SIP 표준 또는 그의 변형 표준에 의해 정의된 대로 정상적인 방식으로 수행될 수 있다.
이 방법은 제1 호가 완료된 이후의 시점에서 지속한다. 구체적으로, 제2 호가 사용자(A)와 사용자(B) 사이에서 다시 설정될 수 있지만, 이 시점에서 호는 제2 시간(예를 들면, 시간 = T2)에서 설정된다(단계 316). 비록 앞의 호처럼 동일 사용자들 사이에서 호가 설정될 지라도, 하나 이상의 동적 파라미터 또는 그의 값은 시간(T1)과 시간(T2) 사이에서 변동될 수 있다. 그래서, 애플리케이션 시퀀스는 동적 파라미터에 기초하여 적어도 부분적으로 결정될 수 있기 때문에, 방법은 시간(T2)에서 결정된 동적 파라미터에 기초한 제2 순서의 애플리케이션들의 시퀀싱에서부터 계속한다(단계 320). 애플리케이션 시퀀스가 한 사용자(예를 들면, 사용자(A) 또는 사용자(B))에 대해서만 바뀔 수 있고, 또는 애플리케이션 시퀀스가 호의 양쪽에 대해 바뀔 수 있다(예를 들면, 발신 측과 종료 측의 양 애플리케이션들이 다른 순서로 되어 있을 수 있다).
제1 호와 마찬가지로, 사용자들은 호가 최종적으로 완료될 때까지 제2 호에서 연동하는 것이 허용된다(단계 324). 또 다시, 제2 호가 완료된 후, 호는 해체될 수 있으며 시그널링 및/또는 매체 경로가 없어질 수 있다.
이제 도 4를 참조하면, 본 발명의 실시예에 따라서 본 출원에서 기술된 하나 이상의 방법을 용이하게 하는데 사용될 수 있는 데이터 구조(400)가 설명될 것이다. 데이터 구조(400)는 호출자 정보 필드(404), 피호출자 정보 필드(408), 정적 시퀀싱 룰 필드(412), 동적 시퀀싱 룰 필드(412), 및 동적 파라미터를 검색하는 정보(420)를 포함하는 복수의 데이터 필드를 포함할 수 있다. 도시된 데이터 구조(400)는 통신 시스템(100)과 관련하여 기술된 컴포넌트들 중 하나, 일부, 또는 모두에 의해 사용될 수 있다. 예를 들어, 동적 파라미터 분석(128)은 통신 서버(124) 내 메모리로부터 직접 또는 쿼리를 통해 기업 데이터베이스(148)로부터 데이터 구조(400)의 부분에 액세스할 수 있다. 대안으로 또는 부가적으로, 데이터 구조(400)는 시퀀싱 룰(132)로서 존재하는 또는 시퀀싱 룰(132)에 이용 가능한 일부의 정보를 포함할 수 있다.
호출자 정보 필드(404) 및/또는 피호출자 정보 필드(408)는 사용자를 전역적으로 고유하게 식별하는 또는 기업 네트워크(104) 내 사용자를 적어도 고유하게 식별하는 정보를 포함할 수 있다. 이들 필드들(404, 408)에 포함될 수 있는 정보의 예는 제한하지 않고, 사용자 이름, AoR, SIP 에일리어스(alias), 네트워크 어드레스, 이메일 어드레스, 전화번호, 장치 식별자, 또는 이들의 조합을 포함한다.
정적 시퀀싱 룰 필드(412)는 불변 파라미터(non-changing parameters)에 기초하여 애플리케이션 시퀀스를 결정하기 위해 사용되는 정보를 포함할 수 있다. 예로서, 정적 시퀀싱 룰 필드(412)는 사용자의 선호하는 또는 디폴트 애플리케이션 시퀀스(또는 애플리케이션(144)에 의해 제공될 수 있는 특징들의 정의)를 포함할 수 있다. 만일 아무런 동적 파라미터도 이용할 수 없다면 또는 아무런 동적 파라미터도 애플리케이션 시퀀싱 판단에 영향을 줄 수 없다면 이러한 룰들이 행해질 수 있다. 정적 시퀀싱 룰(412)은 사용자에 의해 및/또는 권한을 가진 개인에 의해 프로비젼될 수 있다. 몇몇 실시예에서, 정적 시퀀싱 룰(412)은 또한 동적 파라미터를 룩업하는 기능을 지원하지 않는 시스템(예를 들면, 동적 파라미터 분석(128)이 없는 시스템)에서 행해질 수 있다.
정적 시퀀싱 룰(412)과 비교하여, 동적 시퀀싱 룰(412)은 하나 이상의 동적 파라미터가 메시지 내에서 정의되거나, 메시지 내에서 참조된다면, 또는 임의의 다른 조건 또는 기준이 충족되면 애플리케이션 시퀀싱 판단에 영향을 미치는 이벤트 또는 룰을 포함할 수 있다. 동적 시퀀싱 룰(416) 내에서 정의될 수 있는 조건의 형태는 본 출원에서 기술된 모든 동적 파라미터 뿐만 아니라 그 파라미터와 관련하는 조건을 포함한다. 예를 들어, 만일 동적 파라미터가 소정 값을 갖거나 소정 조건이나 조건들의 집합을 충족한다면, 동적 시퀀싱 룰은 정적 시퀀싱 룰(412)에 의해 정의된 시퀀스와 다른 특정 애플리케이션 시퀀스를 정의할 수 있다. 동적 파라미터 및 그 값을 검색하는 정보(420)는 동적 시퀀싱 룰(412) 내에서 참조될 수 있으며 그리고/또는 그 안에서 병합될 수 있다. 동적 파라미터를 검색하는 정보(420)는 메시지를 분석하여 동적 파라미터를 식별하라는 임의의 명령어 및/또는 메시지와 다른 위치에서 동적 파라미터를 검색하라는 명령어를 포함할 수 있다.
전술한 설명에서, 예시를 목적으로 하기 때문에, 방법들이 특정한 순서로 기술되었다. 대안의 실시예에서, 방법들은 기술된 것과 다른 순서로 수행될 수 있다는 것을 인식하여야 한다. 또한 앞에서 기술된 방법들은 하드웨어 컴포넌트에 의해 수행될 수 있거나, 아니면 범용 또는 특수 목적 프로세서(GPU 또는 CPU) 또는 명령어에 따라 프로그램된 로직 회로(FPGA)와 같은 머신으로 하여금 방법을 수행하도록 하기 위해 사용될 수 있는 머신-실행가능 명령어의 시퀀스대로 구현될 수 있다. 이러한 머신-실행가능 명령어는 하나 이상의 머신 판독가능 매체, 이를 테면, CD-ROM 또는 다른 형태의 광 디스크, 플로피 디스켓, ROM, RAM, EPROM, EEPROM, 자기 또는 광학 카드, 플래시 메모리, 또는 전자 명령어를 저장하기에 적합한 다른 형태의 머신-판독가능 매체에 저장될 수 있다. 대안으로, 방법들은 하드웨어 및 소프트웨어의 조합에 의해 수행될 수 있다.
상세한 설명에서 실시예의 철저한 이해를 제공하기 위해 특정한 세부사항이 제시되었다. 그러나, 본 기술에서 통상의 지식을 가진 자들이라면 이러한 특정 세부사항 없이도 실시예가 실시될 수 있다는 것을 이해할 것이다. 예를 들면, 실시예를 불필요한 세부사항으로 방해하지 않도록 하기 위해 회로가 블록 구성도로 도시될 수 있다. 다른 예로, 실시예를 방해하지 않도록 하기 위해 공지의 회로, 프로세스, 알고리즘, 구조, 및 기술이 불필요한 세부사항 없이 도시될 수 있다.
또한, 실시예는 플로우차트, 흐름도, 데이터 흐름도, 구조도, 또는 블록 구성도처럼 묘사되는 프로세서로서 기술되었다는 것을 주목하여야 한다. 비록 플로우차트가 동작을 순차적인 프로세스처럼 기술할지라도, 많은 동작들이 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서는 재배열될 수 있다. 프로세스의 동작이 완료될 때 프로세스가 종료되지만, 도면에 포함되지 않은 부가적인 단계를 가질 수도 있다. 프로세스는 방법, 기능, 절차, 서브루틴, 서브프로그램 등에 대응할 수 있다. 프로세스가 기능에 대응할 때, 프로세스의 종료는 이 기능을 호출 기능 또는 주 기능으로 되돌아가는 것에 해당한다.
또한, 실시예는 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어, 또는 이들의 모든 조합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 작업을 수행하는 프로그램 코드 또는 코드 세그먼트는 저장 매체와 같은 머신 판독가능 매체에 저장될 수 있다. 프로세서(들)는 필요한 작업을 수행할 수 있다. 코드 세그먼트는 절차, 기능, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령이나 데이터 구조나 프로그램 스테이트먼트의 모든 조합을 나타낼 수 있다. 코드 세그먼트는 정보, 데이터, 인수, 파라미터, 또는 메모리 콘텐츠를 전달 및/또는 검색함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 결합될 수 있다. 정보, 인수, 파라미터 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 전송 등을 포함하는 모든 적합한 수단을 통하여 전달, 포워드, 또는 전송될 수 있다.
본 발명의 예시적인 실시예가 본 출원에서 상세하게 기술되었지만, 발명의 개념은 이와 달리 여러 가지로 구현되고 이용될 수 있으며, 또한 첨부의 청구범위는 종래 기술에 의해 제한되는 것을 제외하고는, 그러한 변형을 포함하는 것으로 해석되게 의도한다고 이해되어야 한다.

Claims (10)

  1. 제1 사용자와 적어도 제2 사용자 사이의 통신 세션과 관련하여 제1 메시지를 수신하는 단계와,
    상기 제1 메시지에서 참조되는 것과 상기 제1 메시지와 연관된 것 중의 적어도 하나인 동적 파라미터를 분석하는 단계와,
    상기 동적 파라미터의 분석에 기초하여, 상기 통신 세션에 대한 애플리케이션 시퀀스(application sequence)를 결정하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 동적 파라미터는,
    상기 제1 메시지가 발신된 영역, 특정 네트워크 영역에서 요청되는 대역폭의 양, 특정 네트워크 영역에서 요청되는 대역폭의 형태, 상기 통신 세션의 우선순위 레벨, 상기 통신 세션에서 이미 시퀀스된(sequenced) 서버들의 관련성(affinity of servers), 상기 통신 세션이 모바일 장치에서 발신되는지 또는 상기 모바일 장치를 향해 전달되는지 여부, 상기 통신 세션에 연루된 적어도 하나의 장치의 처리 능력, 상기 통신 세션이 긴급 통신 세션인지의 여부, 현재 시간 정보, 상기 통신 세션이 콜 센터(call center)와 연관되는지의 여부, 및 상황 정보(context information) 중 적어도 하나를 정의하는
    방법.
  3. 제 1 항에 있어서,
    상기 동적 파라미터는 (i) 상기 제1 메시지에 포함된 것 및 (ii) 유니폼 리소스 로케이터(Uniform Resource Locator), 유니폼 리소스 식별자(Uniform Resource Identifier), 및 데이터베이스 쿼리(database query) 중 적어도 하나를 이용하여 상기 제1 메시지에 의해 참조된 것 중 적어도 하나인 시변(time variable) 값을 포함하는
    방법.
  4. 제 1 항에 있어서,
    상기 애플리케이션 시퀀스는 제1 애플리케이션 및 제2 애플리케이션을 포함하고, 상기 제2 애플리케이션의 선택은 상기 제1 애플리케이션이 상기 애플리케이션 시퀀스에서 제1 애플리케이션이라고 결정하는 것에 응답하여 발생하고, 상기 애플리케이션 시퀀스는 상기 제1 사용자 및 상기 적어도 제2 사용자의 선호도에 의해 정의된 디폴트 애플리케이션 시퀀스와 다른
    방법.
  5. 제 1 항에 있어서,
    상기 통신 세션은 실시간 통신 세션 및 근 실시간(near-real-time) 통신 세션 중 적어도 하나를 포함하고, 상기 제1 메시지는 SIP 메시지를 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 애플리케이션 시퀀스는 발신 측 및 종료 측을 포함하며, 상기 발신 측 및 상기 종료 측 중 적어도 하나에서의 애플리케이션들의 시퀀스는 상기 동적 파라미터의 분석에 기초하여 결정되는
    방법.
  7. 제 1 항에 있어서,
    상기 동적 파라미터는 복수의 시변(time-variable) 파라미터를 포함하는
    방법.
  8. 컴퓨팅 시스템으로 하여금 방법을 실행하도록 하는 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어는,
    제1 사용자와 적어도 제2 사용자 사이의 통신 세션과 관련하여 제1 메시지를 수신하도록 구성된 명령어와,
    상기 제1 메시지에서 참조되는 것과 상기 제1 메시지와 연관된 것 중의 적어도 하나인 동적 파라미터를 분석하고, 상기 동적 파라미터의 분석에 기초하여, 상기 통신 세션에 대한 애플리케이션 시퀀스(application sequence)를 결정하도록 구성된 명령어를 포함하는
    비일시적 컴퓨터 판독가능 매체.
  9. 제 8 항에 있어서,
    상기 동적 파라미터는,
    상기 제1 메시지가 발신된 영역, 특정 네트워크 영역에서 요청되는 대역폭의 양, 특정 네트워크 영역에서 요청되는 대역폭의 형태, 상기 통신 세션의 우선순위 레벨, 상기 통신 세션에서 이미 시퀀스된 서버들의 관련성(affinity of servers), 상기 통신 세션이 모바일 장치에서 발신되는지 또는 상기 모바일 장치를 향해 전달되는지 여부, 상기 통신 세션에 연루된 적어도 하나의 장치의 처리 능력, 상기 통신 세션이 긴급 통신 세션인지의 여부, 현재 시간 정보, 상기 통신 세션이 콜 센터(call center)와 연관되는지의 여부, 및 상황 정보(context information) 중 적어도 하나를 정의하는
    컴퓨터 판독가능 매체.
  10. 통신 네트워크로서,
    하나 이상의 애플리케이션들을 애플리케이션 시퀀스에 삽입하여, 하나 이상의 특징을 제1 사용자와 제2 사용자 사이의 통신 세션에 제공하도록 구성된 적어도 하나의 애플리케이션 서버와,
    하나 이상의 동적 파라미터에 기초하여 상기 애플리케이션 시퀀스에서 제공될 애플리케이션들의 순서를 동적으로 결정하는데 사용되는 애플리케이션 시퀀싱 룰을 포함하는 통신 서버를 포함하는
    통신 네트워크.
KR20140105389A 2013-08-14 2014-08-13 동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출 KR20150020130A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361865949P 2013-08-14 2013-08-14
US61/865,949 2013-08-14
US14/043,334 2013-10-01
US14/043,334 US20150052208A1 (en) 2013-08-14 2013-10-01 Invocation of sequenced applications based on dynamic parameters

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020160018591A Division KR20160023760A (ko) 2013-08-14 2016-02-17 동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출

Publications (1)

Publication Number Publication Date
KR20150020130A true KR20150020130A (ko) 2015-02-25

Family

ID=52467620

Family Applications (2)

Application Number Title Priority Date Filing Date
KR20140105389A KR20150020130A (ko) 2013-08-14 2014-08-13 동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출
KR1020160018591A KR20160023760A (ko) 2013-08-14 2016-02-17 동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020160018591A KR20160023760A (ko) 2013-08-14 2016-02-17 동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출

Country Status (2)

Country Link
US (1) US20150052208A1 (ko)
KR (2) KR20150020130A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110996039B (zh) * 2019-11-28 2022-01-04 浙江华创视讯科技有限公司 电子白板共享方法、系统和计算机可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234388B2 (en) * 2005-07-29 2012-07-31 Verizon Patent And Licensing Inc. Application service invocation based on filter criteria
US20090106428A1 (en) * 2007-10-23 2009-04-23 Torbjorn Dahlen Service intermediary Addressing for real time composition of services
US8654958B2 (en) * 2010-05-28 2014-02-18 Microsoft Corporation Managing call forwarding profiles

Also Published As

Publication number Publication date
US20150052208A1 (en) 2015-02-19
KR20160023760A (ko) 2016-03-03

Similar Documents

Publication Publication Date Title
US9602634B2 (en) Global session identifier
US9544340B2 (en) Application programming interface enabling communication features for different communication protocols
US8817777B2 (en) Hybrid unified communications deployment between cloud and on-premise
US9521169B2 (en) SIP anchor points to populate common communication logs
US8700782B2 (en) Directing modalities over different networks in multimodal communications
US8886789B2 (en) SIP monitoring and control anchor points
US7870418B2 (en) Enhanced presence routing and roster fidelity by proactive crashed endpoint detection
US9398055B2 (en) Secure call indicator mechanism for enterprise networks
KR101481285B1 (ko) 핫-데스킹을 인에이블링하기 위한 시스템 및 방법
KR20090053924A (ko) 피어­투­피어 네트워크에서 콜 센터 서비스를 제공하는 방법
US20150006740A1 (en) Shared back-to-back user agent
CN104168259B (zh) 会话管理器抗循环
US9167085B2 (en) System and method for coordinated call-back revocation
US10944832B2 (en) Supporting intermediate back to back user agents between user agents and a conference focus
US9247049B2 (en) Application sequencing for advanced communication features
KR20160023760A (ko) 동적 파라미터에 기초하여 시퀀스된 애플리케이션들의 호출
US9467570B2 (en) Call transfer with network spanning back-to-back user agents
US8953501B2 (en) IMS application sequencing optimizer
US9876912B2 (en) Parallel forking with AoR chaining

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
A107 Divisional application of patent
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL NUMBER: 2016101000909; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20160217

Effective date: 20170803