KR101959161B1 - 분산형 이벤트 전달 방법 - Google Patents

분산형 이벤트 전달 방법 Download PDF

Info

Publication number
KR101959161B1
KR101959161B1 KR1020177029753A KR20177029753A KR101959161B1 KR 101959161 B1 KR101959161 B1 KR 101959161B1 KR 1020177029753 A KR1020177029753 A KR 1020177029753A KR 20177029753 A KR20177029753 A KR 20177029753A KR 101959161 B1 KR101959161 B1 KR 101959161B1
Authority
KR
South Korea
Prior art keywords
module
resource
server
request
hash function
Prior art date
Application number
KR1020177029753A
Other languages
English (en)
Other versions
KR20170119726A (ko
Inventor
아나톨리 그라고레프
알렉산더 티킨
빅터 콜레소프
필립 레이스
비야체슬라프 세이코
그레고리 부딜로프스키
Original Assignee
그린에덴 유.에스. 홀딩스 Ii, 엘엘씨
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 그린에덴 유.에스. 홀딩스 Ii, 엘엘씨 filed Critical 그린에덴 유.에스. 홀딩스 Ii, 엘엘씨
Publication of KR20170119726A publication Critical patent/KR20170119726A/ko
Application granted granted Critical
Publication of KR101959161B1 publication Critical patent/KR101959161B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • G06F17/2705
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063114Status monitoring or status determination for a person or group
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L65/1006
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • H04L65/105
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/4228Systems providing special services or facilities to subscribers in networks
    • H04M3/42306Number translation services, e.g. premium-rate, freephone or vanity number services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/5183Call or contact centers with computer-telephony arrangements
    • H04M3/5191Call or contact centers with computer-telephony arrangements interacting with the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/523Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
    • H04M3/5232Call distribution algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/106Mapping addresses of different types across networks, e.g. mapping telephone numbers to data network addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4557Directories for hybrid networks, e.g. including telephone numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2203/00Aspects of automatic or semi-automatic exchanges
    • H04M2203/40Aspects of automatic or semi-automatic exchanges related to call centers
    • H04M2203/402Agent or workforce management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Resources & Organizations (AREA)
  • Multimedia (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Educational Administration (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Telephonic Communication Services (AREA)

Abstract

이벤트를 에이전트 디바이스로 전달하는 분산형 방법에 대해서 개시한다. 제 1 소프트웨어 모듈은 이벤트, 예를 들면, 스크린 팝 이벤트 또는 벨 소리 이벤트를 생성하여 에이전트 디바이스를 담당하는 제 2 모듈로 전달한다. 제 3 모듈은 제 1 모듈과 동일한 모듈일 수 있으며, 해시 함수를 평가하여 에이전트 디바이스에 대한 식별자로부터 제 2 모듈에 대한 식별자를 결정한다. 제 1 모듈은 이벤트를 제 2 모듈로 전달하고, 제 2 모듈은 이 이벤트에 반응하여, 예컨대, 에이전트 디바이스가 벨 소리 경고를 생성하거나 스크린 팝(screen pop)을 표시하도록 한다.

Description

분산형 이벤트 전달 방법{A method for distributed event delivery}
본 발명은 일반적으로 콜 센터와 같은 콜 센터(contact center) 및 기타 기업용 통신 시스템에서 사용되는 소프트웨어 시스템에 관한 것으로, 더욱 상세하게는 콜 센터에서의 세션 개시 프로토콜(SIP, session initiation protocol) 통신을 처리하기 위한 모듈화되고, 확장 가능하며, 고가용성인 시스템에 관한 것이다.
기업은 콜 센터를 사용하여 외부 관계자와 효율적이면서 체계적인 방식으로 의사 소통할 수 있다. 이와 같은 콜 센터는 예를 들면 전화를 관리하고, 또한 외부 관계자와 상호 작용하면서 또한 서로 상호 작용하는 다수의 에이전트를 구비하고 있을 수 있다. 호출(call, 콜, 또는 호)은 이 콜 센터에 처음 연결되는 경우에 끊기지 않고 계속 연결되어 있거나 대화식 음성 응답(IVR, interactive voice response) 시스템에 접속될 수 있으며, 이후에, 에이전트가 전화를 걸거나, 끊기지 않게 계속 연결시켜 두거나, 이 호출을 다른 곳으로 전달하거나, 다른 에이전트와 협의하거나, 또는 이 호출과 관련된 기타 동작을 취할 수 있다. 또한 외부 관계자는, 온라인 채팅, 비디오, 이메일 등을 통한 콜 센터와의 접촉을 개시하는 것을 포함하는 다른 메커니즘에 의해서 콜 센터와 상호 작용할 수 있다.
콜 센터에서는 표준 세션 개시 프로토콜(SIP, session initiation protocol)을 사용하여 인터넷 프로토콜(IP, Internet Protocol) 네트워크를 통해서 통신을 수행할 수 있으며, 이때 세션 개시 프로토콜은 콜 센터 내에서 동작할 수도 있으며, 또한 하나 이상의 게이트웨이를 통해서 공중 전화 통신망(PSTN, public switched telephone network)과 같은 외부 네트워크에 접속될 수도 있다. 또한, IP 네트워크는 콜 센터의 외부로 연장되어, 예를 들면, PSTN을 사용할 필요없이 인터넷(Internet)에 접속된 관계자들과의 통신을 가능하게 할 수 있다.
일부 경우에 있어서, 대형 콜 센터를 구축하는 것이 바람직한 경우가 있을 수 있으며, 이 경우, 예를 들면, 수천명의 에이전트가 고용될 수 있다. 대형 콜 센터는, 예를 들면, 각각의 수신 통화가 이 호(call)에 대한 분석 결과에 따라서 에이전트로 전달되는 중앙 집중식 전화 번호 연락처를 가지고 있는 기업, 종종 하나의 에이전트로부터 다른 에이전트로 통화를 전달할 필요가 있는 기업, 또는 다수의 에이전트가 서로 다른 지리적인 위치에서 일하는 기업에게 도움이 될 수 있다. 그와 같은 경우에 있어서, 복수의 독립적인 소형 콜 센터를 구축하는 것은 비효율적일 수 있다.
대형 콜 센터에서 채택되는 소프트웨어 및 하드웨어가 모듈화되고, 확장 가능하고, 규모를 즉각적으로 확장하거나 축소할 수 있으며, 또한 고가용성 서비스를 제공하기에 적합한 것이면 유리할 수 있다. 콜 센터의 전개가 매우 광범위해짐에 따라서 성능에 제약을 가하는 병목 현상이 어려운 문제를 키울 수 있기 때문에 가용성은 중요할 수 있다.
본 발명의 일 특징에 따르면, 이벤트를 콜 센터 내의 에이전트 디바이스로 전달하기 위한 시스템이 제공된다.
본 발명의 일 실시예에 따르면, 컴퓨팅 디바이스 상에서 실행되는 제 1 모듈에 의해서, 리소스에 대한 이벤트를 생성하고, 제 1 모듈에 의해서, 이 리소스에 대한 리소스 식별자(ID, identifier)를 식별하고, 이 리소스를 담당하고 있는 제 2 모듈을 식별하는 단계를 포함하며, 여기에서 식별하는 단계는, 상기 리소스 ID를 함수에 제공하는 단계; 함수로부터의 출력으로서 제 2 모듈에 대한 모듈 식별자(ID)를 수신하는 단계; 및 식별된 모듈 ID에 기초하여 제 2 모듈로 이벤트를 전송하는 단계를 포함하는 분산형 이벤트 전달을 위한 방법이 제공된다.
일 실시예에 있어서, 본 발명의 방법은 리소스 ID에 의해서 식별된 리소스로 이벤트를 전달하는 단계 - 여기에서 상기 리소스는 상기 이벤트에 반응하여 출력을 생성함 - 를 포함하고 있는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
일 실시예에 있어서, 이벤트는 벨 소리 이벤트이다.
일 실시예에 있어서, 본 발명의 방법은 리소스에 의해서, 벨 소리 이벤트를 수신하는 단계; 및 리소스에 의해서, 벨 소리 경고를 생성하는 단계;를 포함하고 있다.
일 실시예에 있어서, 본 발명의 방법은 호(call)를 리소스 ID와 관련된 에이전트 디바이스로 전환하는 단계를 포함하고 있다.
일 실시예에 있어서, 이벤트는 스크린 팝 이벤트이다.
일 실시예에 있어서, 본 발명의 방법은, 리소스에 의해서, 스크린 팝 이벤트를 수신하는 단계; 및 리소스에 의해서 스크린 팝을 생성하는 단계;를 포함하고 있다.
일 실시예에 있어서, 함수는 해시 함수이다.
일 실시예에 있어서, 해시 함수는 지속적 해시 함수(consistent hash function)이다.
일 실시예에 있어서, 해시 함수는 리소스 식별자를 일정 범위 내로 매핑하도록 구성된 제 1 기본 해시 함수; 및 모듈 식별자를 일정 범위 내로 매핑하도록 구성된 제 2 기본 해시 함수를 포함하고 있다.
일 실시예에 있어서, 제 2 기본 해시 함수는 또한 각각의 모듈 식별자의 복사본을 일정 범위 내로 매핑하도록 구성된다.
일 실시예에 있어서, 해시 함수는 지리적 지역 내의 리소스에 대응하는 리소스 식별자를 이 지리적 지역 내의 컴퓨팅 디바이스 상에서 실행되는 모듈에 대응하는 모듈 식별자로 매핑하도록 구성되어 있다.
본 발명의 일 특징에 따르면, 신규 서버, 예컨대, SIP 서버를 서버 클러스터, 예컨대 SIP 클러스터에 추가하기 위한 시스템이 제공된다. 상태 정보는 이 과정에서 신규 서버로 전달된다. 본 발명의 다른 특징에 따르면, 서버, 예컨대, SIP 서버를 서버 클러스터, 예컨대 SIP 클러스터로부터 제거하기 위한 시스템이 제공된다. 상태 정보는 이 과정에서 제거되어질 서버로부터 남아 있는 서버로 전달된다.
본 발명의 일 실시예에 따르면, 제 1 서버를 콜 센터와 관련된 기존 제 2 서버 그룹에 추가하기 위한 방법이 제공되며, 이 방법은, 제 1 서버에 의해서, 제 1 서버를 기존 제 2 서버 그룹에 추가하는 것을 개시하기 위한 요청을 전송하는 단계; 복수의 기존 제 2 서버 각각에 의해서, 요청에 반응하여, 기존 제 2 서버에 매핑된 리소스에 대한 상태 정보를 전송하는 단계 - 상태 정보는, 기존 제 2 서버 중의 하나로 상태 정보를 송신하지 않고 제 1 서버로 송신됨; 및, 제 1 서버에 의해서, 복수의 기존 제 2 서버 각각으로부터 상태 정보를 수신하는 것에 반응하여 기존 서버 각각으로 커밋 메시지를 전송하는 단계; 및 커밋 메시지에 반응하여 기존 제 2 서버 중의 하나로부터의 리소스 중의 하나의 매핑을 제 1 서버로 변경하는 단계를 포함하고 있다.
일 실시예에 있어서, 본 발명의 방법은, 제 1 서버에 의해서, 복수의 기존 제 2 서버 각각으로 개시 메시지를 전송하는 단계; 복수의 기존 제 2 서버 각각에 의해서, 개시 승인(acknowledge) 메시지를 제 1 서버로 전송하는 단계; 및, 제 1 서버에 의해서, 복수의 기존 제 2 서버 각각으로 상태 전달 요청을 전송하는 단계를 포함하고 있다.
일 실시예에 있어서, 본 발명의 방법은, 서버 목록을 유지하는 것을 담당하는 설정 서버로 제 1 서버의 추가를 통지하는 단계; 설정 서버에 의해서, 서버 목록을 갱신하는 단계; 및, 설정 서버에 의해서, 일련의 가입자에게 서버 목록에 대한 갱신을 통지하는 단계를 포함하고 있다.
일 실시예에 있어서, 본 발명의 방법은, 제 1 서버에 매핑된 리소스와 연관된 요청을 기존 제 2 서버로부터 수신하는 단계; 상기 제 1 서버가 상기 리소스를 담당하는 것으로 식별하는 단계; 및 상술한 식별하는 단계에 반응하여 요청을 제 1 서버로 전환하는 단계;를 포함하고 있다.
일 실시예에 있어서, 제 1 서버가 리소스를 담당하는 것으로 식별하는 단계는, 리소스를 식별하는 리소스 식별자(ID)를 함수로 제공하는 단계; 및, 이 함수로부터의 출력으로서 제 1 서버에 대한 모듈 식별자(ID)를 수신하는 단계를 포함하고 있다.
일 실시예에 있어서, 함수는 해시 함수이다.
일 실시예에 있어서, 해시 함수는 지속적 해시 함수(consistent hash function)이다.
일 실시예에 있어서, 해시 함수는, 리소스 식별자를 일정 범위 내로 매핑하도록 구성된 제 1 기본 해시 함수; 및 모듈 식별자를 일정 범위 내로 매핑하도록 구성된 제 2 기본 해시 함수를 포함하고 있다.
일 실시예에 있어서, 제 2 기본 해시 함수는 또한 각각의 모듈 식별자의 복사본을 일정 범위 내로 매핑하도록 구성된다.
일 실시예에 있어서, 해시 함수는 지리적 지역 내의 리소스에 대응하는 리소스 식별자를 이 지리적 지역 내의 컴퓨팅 디바이스 상에서 실행되는 서버에 대응하는 모듈 식별자로 매핑하도록 구성되어 있다.
본 발명의 일 실시예에 따르면, 콜 센터와 관련된 서버 그룹 - 서버 그룹은 제 1 서버 및 복수의 기타 제 2 서버를 포함하고 있음 - 으로부터 제 1 서버를 제거하기 위한 방법이 제공되며, 이 방법은, 제 1 서버에 의해서, 제 1 서버를 기존 제 2 서버 그룹으로부터 제거하는 것을 개시하기 위한 요청을 전송하는 단계; 제 1 서버에 의해서, 제 1 서버에 매핑된 리소스에 대한 상태 정보를 전송하는 단계 - 상태 정보는, 기타 제 2 서버 중의 하나에 의해서 상태 정보가 송신되지 않고 제 1 서버에 의해서 송신됨; 및, 제 1 서버에 의해서, 기타 제 2 서버 각각으로 커밋 메시지(commit message)를 전송하는 단계; 및, 커밋 메시지에 반응하여 기타 제 2 서버 중의 하나에 대한 제 1 서버로부터의 리소스 중의 하나에 대한 매핑을 커밋 메시지를 담당하는 제 1 서버로 변경하는 단계;를 포함한다.
일 실시예에 있어서, 본 발명의 방법은, 상기 복수의 기타 제 2 서버 각각에 의해서, 상기 제 1 서버로 개시 승인 메시지를 전송하는 단계;를 포함하고 있는 것을 특징으로 하는, 콜 센터와 관련된 서버 그룹으로부터 제 1 서버를 제거하는 방법.
일 실시예에 있어서, 본 발명의 방법은, 서버 목록을 유지하는 것을 담당하는 설정 서버로 상기 제 1 서버의 삭제를 통지하는 단계; 설정 서버에 의해서, 서버 목록을 갱신하는 단계; 및, 설정 서버에 의해서, 일련의 가입자에게 서버 목록에 대한 갱신을 통지하는 단계를 포함하고 있다.
일 실시예에 있어서, 본 발명의 방법은, 상기 제 1 서버로부터 상기 복수의 기타 제 2 서버의 남아있는 서버에 매핑되는 리소스와 관련된 요청을 수신하는 단계; 상기 남아있는 서버가 상기 리소스를 담당하는 것으로 식별하는 단계; 및, 식별하는 단계에 반응하여 요청을 남아있는 전환하는 단계;를 포함하고 있다.
일 실시예에 있어서, 남아있는 서버가 리소스를 담당하는 것으로 식별하는 단계는, 리소스를 식별하는 리소스 식별자(ID)를 함수로 제공하는 단계; 및, 이 함수로부터의 출력으로서 남아있는 서버에 대한 모듈 식별자(ID)를 수신하는 단계를 포함하고 있다.
*일 실시예에 있어서, 함수는 해시 함수이다.
일 실시예에 있어서, 해시 함수는 지속적 해시 함수(consistent hash function)이다.
일 실시예에 있어서, 해시 함수는, 리소스 식별자를 일정 범위 내로 매핑하도록 구성된 제 1 기본 해시 함수; 및 모듈 식별자를 일정 범위 내로 매핑하도록 구성된 제 2 기본 해시 함수를 포함하고 있다.
일 실시예에 있어서, 제 2 기본 해시 함수는 또한 각각의 모듈 식별자의 복사본을 일정 범위 내로 매핑하도록 구성된다.
일 실시예에 있어서, 해시 함수는 지리적 지역 내의 리소스에 대응하는 리소스 식별자를 이 지리적 지역 내의 컴퓨팅 디바이스 상에서 실행되는 서버에 대응하는 모듈 식별자로 매핑하도록 구성되어 있다.
일 특징에 따르면, 콜 센터에서 다이얼된 외부 발신 통화를 처리하기 위한 방법이 제공된다.
본 발명의 일 실시예에 따르면, 에이전트 디바이스에서 다이얼된 호출에 대응하는 다이얼 문자열로부터 변환된 전화 번호를 생성하는 방법이 제공되며, 이 방법은, 컴퓨팅 디바이스 상에서 실행되는 서버에 의해서, 에이전트 디바이스와 관련된 하나 이상의 가용 카테고리를 식별하는 단계 - 각각의 가용 카테고리는 가용 차단 카테고리 또는 가용 비차단 카테고리이며, 각각의 가용 카테고리는 하나 이상의 패턴을 포함하고 있음; 가용 비차단 카테고리 내의 적어도 하나의 패턴과 일치하고 또한 가용 차단 카테고리 내의 패턴과는 일치하지 않는 다이얼 문자열에 반응하여 전화 번호를 변환하는 단계, 또는 임의의 가용 비차단 카테고리 내의 패턴과는 일치하지 않고 또한 가용 차단 카테고리 내의 적어도 하나의 패턴과는 일치하는 다이얼 문자열에 반응하여 호(call)를 거부하는 단계;를 포함하며, 여기에서, 전화 번호의 변환은, 공중 전화 통신망(PSTN, public switched telephone network) 상에서의 상기 다이얼 문자열에 의해서 식별되는, 인터넷 프로토콜(IP, Internet Protocol) 네트워크 상에서의 최초 발신지로부터의 호출을 목적지로 전환하기 위한 하나 이상의 게이트웨이를 식별하는 단계; 각각의 상기 게이트웨이를 통한 상기 호 전환 비용을 계산하는 단계; 가장 낮은 비용의 게이트웨이를 바람직한 게이트웨이로서 식별하는 단계; 및, 바람직한 게이트웨이에 대한 식별자와 다이얼 문자열을 조합하는 것에 의해서 변환된 전화 번호를 형성하는 단계;를 포함하고 있다.
일 실시예에 있어서, 각각의 게이트웨이를 통한 호 전환 비용을 계산하는 단계는, 각각의 게이트웨이에 대해서, 하루 중 시간, 요일, 게이트웨이의 위치, 목적지의 위치, 및 이들의 조합으로 이루어지는 그룹으로부터 선택되는 양을 입력으로서 수용하는 알고리즘을 실행하는 단계를 포함하고 있다.
일 실시예에 있어서, 각각의 게이트웨이를 통한 호 전환 비용을 계산하는 단계는, 각각의 게이트웨이에 대해서, 게이트웨이 상의 부하, 호출에 대해서 음성을 부가할 수 있는 능력, 호출에 대해서 비디오를 부가할 수 있는 능력, 호출에 대한 보안 등급, 및 이들의 조합으로 이루어지는 그룹으로부터 선택되는 양을 입력으로서 수용하는 알고리즘을 실행하는 단계를 포함하고 있다.
본 발명의 일 특징에 따르면, 복수의 상호 작용 소프트웨어 모듈에 의해서 생성된 로그 파일을 분석하기 위한 시스템이 제공된다.
본 발명의 일 실시예에 따르면, 복수의 모듈에 의해서, 하나 이상의 로그 파일 내의 복수의 로그 항목을 기록하는 단계; 제 1 컴퓨팅 디바이스 상에서 실행되는 파서(parser)에 의해서, 복수의 데이터베이스 항목을 생성하기 위해서 하나 이상의 로그 파일을 파싱하는 단계; 분석 툴에 의해서, 데이터베이스 질의를 수행하는 단계; 및, 분석 툴에 의해서, 질의의 결과를 표시하는 단계;를 포함하며, 여기에서 복수의 모듈에 의해서, 복수의 로그 항목을 기록하는 상기 단계는, 제 1 모듈에 의해서, 이벤트 또는 메시지를 제 2 모듈로 전송하는 단계; 상기 제 1 모듈에 의해서, 상기 이벤트 또는 메시지를 상기 제 2 모듈로 전송하는 단계에 대응하는 트리거 항목을 기록하는 단계; 상기 제 2 모듈에 의해서, 상기 이벤트 또는 메시지를 수신하는 단계; 및, 제 2 모듈에 의해서, 이벤트 또는 메시지를 제 1 모듈로부터 수신하는 단계에 대응하는 제 1 핸들러 항목을 기록하는 단계;를 포함하며, 여기에서, 이벤트 또는 메시지는 고유 식별자를 포함하고 있으며; 트리거 항목은 이 고유 식별자를 포함하고 있으며; 또한 제 1 핸들러 항목은 이 고유 식별자를 포함하는 콜 센터 내의 활동을 분석하기 위한 방법이 제공된다.
일 실시예에 있어서, 복수의 로그 항목을 파싱하는 단계는 트리거 항목 및 제 1 핸들러 항목을 데이터베이스의 테이블에 대응하는 필드로 복사하는 단계를 포함하고 있다.
일 실시예에 있어서, 데이터베이스 질의를 수행하는 단계는 고유 식별자를 사용하여 트리거 항목을 포함하고 있는 레코드를 제 1 핸들러 항목을 포함하고 있는 레코드와 조합하는 단계를 포함하고 있다.
본 발명의 일 실시예에 따르면, 제 1 컴퓨팅 디바이스 상에서 실행되는 파서에 의해서, 복수의 데이터베이스 항목을 생성하기 위해서 복수의 로그 파일을 파싱하는 단계; 상기 복수의 로그 파일 각각은 복수의 모듈에 의해서 사전에 기록된 복수의 로그 항목을 포함하고 있음; 분석 툴에 의해서, 데이터베이스 질의를 수행하는 단계; 및, 분석 툴에 의해서, 질의의 결과를 표시하는 단계;를 포함하며, 여기에서 각각의 로그 파일은 파일명을 포함하고 있으며, 또한 복수의 로그 파일을 파싱하는 단계는, 로그 항목에 대해서, 상기 로그 항목으로부터 하나의 필드를 데이터베이스 항목으로서 저장하는 단계; 데이터베이스 항목으로서 상기 로그 파일의 상기 파일명을 저장하는 단계; 및, 로그 항목의 로그 파일 내의 위치를 데이터베이스 항목으로서 저장하는 단계;를 포함하며, 여기에서, 분석 툴에 의해서, 질의의 결과를 표시하는 단계는, 상기 로그 항목으로부터 상기 필드를, 클릭되면 분석 툴에서 상기 로그 항목을 표시하도록 구성된 클릭 가능한 링크로 표시하는 단계를 포함하고 있는 것을 특징으로 하는, 콜 센터 내의 활동을 분석하기 위한 방법.
본 발명의 일 특징에 따르면, 콜 센터 내의 에이전트 예약을 조정하기 위한 시스템이 제공된다.
본 발명의 일 실시예에 따르면, 컴퓨팅 디바이스 상에서 실행되는 제 1 모듈에 의해서, 콜 센터 리소스에 대한 리소스 식별자(ID)를 식별하는 단계; 이 리소스를 담당하고 있는 제 2 모듈을 식별하는 단계를 포함하며, 여기에서 식별하는 단계는, 상기 리소스 ID를 함수에 제공하는 단계; 및 함수로부터의 출력으로서 제 2 모듈에 대한 모듈 식별자(ID)를 수신하는 단계를 포함하며; 식별된 모듈 ID에 기초하여 리소스에 대한 요청을 제 2 모듈로 전송하는 단계를 포함하는 분산형 콜 센터 리소스를 예약하기 위한 방법이 제공된다.
일 실시예에 있어서, 본 발명의 방법은, 상기 제 2 모듈에 의해서, 상기 리소스에 대한 상기 요청을 수신하는 단계; 및, 제 2 모듈에 의해서, 리소스에 대한 요청을 허가할 지를 결정하는 단계;를 포함하고 있다.
일 실시예에 있어서, 리소스에 대한 요청을 허가할 지를 결정하는 단계는, 일정 시간 간격 동안 상기 리소스에 대한 제 2 요청을 수신하는 단계; 상기 제 2 요청과 관련된 상기 요청의 우선 순위를 평가하는 단계; 및 평가된 우선 순위에 기초하여 요청 또는 제 2 요청을 허가하는 단계;를 포함하고 있다.
일 실시예에 있어서, 우선 순위를 평가하는 단계는 제 2 요청의 복수의 기준에 대한 요청의 복수의 기준을 평가하는 단계를 포함하고 있으며, 이때 기준은 발신인의 특징, 호에 대한 리소스의 적절성, 이 호에 대한 기타 리소스의 적절성, 대기 시간, 및 이들의 조합으로 이루어지는 그룹으로부터 선택된다.
일 실시예에 있어서, 요청은 호 전환 요청이다.
일 실시예에 있어서, 본 발명의 방법은 요청을 허가하는 단계에 반응하여 호를 리소스로 전환하는 단계를 포함하고 있다.
일 실시예에 있어서, 리소스는 콜 센터 에이전트이며, 또한 요청은 이 에이전트를 예약하려는 요청이다.
일 실시예에 있어서, 제 2 모듈은 리소스와 관련된 상태 정보를 유지하는 것을 담당한다.
일 실시예에 있어서, 함수는 해시 함수이다.
일 실시예에 있어서, 해시 함수는 지속적 해시 함수(consistent hash function)이다.
일 실시예에 있어서, 해시 함수는, 리소스 식별자를 일정 범위 내로 매핑하도록 구성된 제 1 기본 해시 함수; 및 모듈 식별자를 일정 범위 내로 매핑하도록 구성된 제 2 기본 해시 함수를 포함하고 있다.
일 실시예에 있어서, 제 2 기본 해시 함수는 또한 각각의 모듈 식별자의 복사본을 일정 범위 내로 매핑하도록 구성된다.
일 실시예에 있어서, 해시 함수는 지리적 지역 내의 리소스에 대응하는 리소스 식별자를 이 지리적 지역 내의 컴퓨팅 디바이스 상에서 실행되는 모듈에 대응하는 모듈 식별자로 매핑하도록 구성되어 있다.
이들 및 기타 본 발명의 특징 및 장점은 발명의 상세한 설명, 특허청구범위, 및 첨부 도면을 참조하면 이들을 더욱 잘 이해할 수 있음을 알아야 한다.
도 1은 본 발명의 예시적인 일 실시예에 따른 서버층 및 SIP 클러스터와 인터페이스를 형성한 에이전트 디바이스를 개략적으로 도시한 다이아그램이다.
도 2는 본 발명의 예시적인 일 실시예에 따른 데이터 센터 및 콜 센터를 개략적으로 도시한 다이아그램이다.
도 3은 본 발명의 예시적인 일 실시예에 따른 콜 센터 내의 예시적인 서버 모듈을 나타내고 있고 있는 개략 다이아그램이다.
도 4는 본 발명의 예시적인 일 실시예에 따른 부가 기능 서버층 및 SIP 프록시층과 인터페이스를 형성한 SIP 클러스터 내의 몇 가지 SIP 서버를 개략적으로 도시한 다이아그램이다.
도 5a는 본 발명의 예시적인 일 실시예에 따른 지속적 해시 함수를 구현하기 위해서 SIP 서버 및 DN을 원형 범위 내로 매핑시킨 다이아그램이다.
도 5b는 본 발명의 예시적인 일 실시예에 따른, 도 5a에 나타낸 다이아그램의 일 변형으로 SIP 서버가 제거된 상태를 나타낸 도면이다.
도 5c는 본 발명의 예시적인 일 실시예에 따른, 도 5a에 나타낸 다이아그램의 일 변형으로 SIP 서버에 대해서 복사본이 원형 범위 내에 매핑된 상태를 나타낸 도면이다.
도 6은 본 발명의 예시적인 일 실시예에 따른 SIP 서버를 SIP 클러스터에 추가하는 것과 관련된 동작을 나타내는 메시지 시퀀스 다이아그램이다.
도 7은 본 발명의 예시적인 일 실시예에 따른 SIP 서버를 SIP 클러스터로부터 제거하는 것과 관련된 동작을 나타내는 메시지 시퀀스 다이아그램이다.
도 8은 본 발명의 예시적인 일 실시예에 따른 두 개의 SIP 서버를 SIP 클러스터에 추가하려고 하는 시도가 실패한 것과 관련된 동작을 나타내는 메시지 시퀀스 다이아그램이다.
도 9는 본 발명의 예시적인 일 실시예에 따른 수신 통화에 대한 에이전트 예약에 참여하는 모듈을 개략적으로 도시한 다이아그램이다.
도 10은 본 발명의 예시적인 일 실시예에 따른 에이전트 예약과 관련된 동작을 나타내는 플로 차트이다.
도 11은 본 발명의 예시적인 일 실시예에 따른 이벤트 전달과 관련된 동작을 나타내는 플로 차트이다.
도 12는 본 발명의 예시적인 일 실시예에 따른 로그 파일의 생성 및 분석과 관련된 모듈 및 컴포넌트를 나타내는 블록 다이아그램이다.
도 13은 본 발명의 예시적인 일 실시예에 따른 로그 파일의 생성 및 분석과 관련된 동작을 나타내는 플로 차트이다.
도 14는 본 발명의 예시적인 일 실시예에 따른 복수 네트워크에 의해서 접속된 데이터 센터 및 에이전트 사이트를 개략적으로 도시한 다아아그램이다. 및
도 15는 본 발명의 예시적인 일 실시예에 따른 호출 프로파일 및 호출 카테고리를 개략적으로 도시한 다이아그램이다.
첨부된 도면과 관련하여 이하에서 설명하는 본 발명을 실시하기 위한 구체적인 내용은 본 발명에 따라서 제공되는 SIP 클러스터의 예시적인 실시예의 설명으로서 의도되었으며 또한 본 발명이 구현되거나 사용될 수 있는 유일한 형태만을 대표하는 것으로 의도되지는 않았다. 발명의 상세한 설명은 예시한 실시예와 연관되어 본 발명의 특징을 설명한다. 그러나, 또한, 본 발명의 사상과 범주 내의 범위에 포함되어지도록 의도된 서로 다른 실시예에 의해서 동일하거나 동등한 기능 및 구조를 얻을 수 있음을 알아야 한다. 본 명세서의 다른 곳에서 나타낸 바와 같이, 동일한 구성 요소의 도면 부호는 동일한 구성 요소 또는 형상을 표시하도록 의도되었다.
도 1은 본 발명의 예시적인 일 실시예에 따른 콜 센터를 지원하고 있는 시스템에서의 서버층 및 SIP 클러스터와 인터페이스를 형성한 에이전트 디바이스를 개략적으로 도시한 다이아그램이다. 콜 센터는 회사나 법인 내부에 설치된 시설로서, 기업이 기업을 통해서 입수할 수 있는 제품 및 서비스와 관련된 판매 및 서비스 기능을 수행하기 위해 사용될 수 있다. 다른 예시적인 실시예에 있어서, 콜 센터는 제 3 자 서비스 제공자일 수 있다. 콜 센터는 기업 또는 제 3 자 서비스 제공자 전용 장비에서 운용되거나, 및/또는 원격 컴퓨팅 환경, 예를 들면, 복수의 기업에 대해서 복수의 콜 센터를 지원하기 위한 기반 시설을 갖춘 사설(private) 또는 공중(public) 클라우드 환경에서 운용될 수 있다.
예시적인 일 실시예에 따르면, 콜 센터는 전화 또는 기타 통신 메커니즘을 통해서 서비스를 전달 수 있도록 하는 리소스(예컨대, 직원, 컴퓨터, 및 통신 장비)를 포함하고 있다. 그와 같은 서비스는 콜 센터의 유형에 따라서 달라질 수 있으며, 또한 고객 만족 서비스로부터 헬프 데스크(help desk), 비상 대응 시스템, 텔레마케팅, 주문 접수 등의 범위에까지 미칠 수 있다.
*예시적인 일 실시예에 있어서, 콜 센터는 복수의 에이전트 디바이스(338)를 포함하고 있을 수 있으며, 이들 각각은 에이전트가 조작하기에 적합하고, 또한 각각은 콜 센터 내의 서버에 접속되어 있다. SIP 클러스터(105)로 참조될 수 있는 세션 개시 프로토콜 서버(SIP server, session initiation protocol servers) 클러스터는, 에이전트 디바이스(338)에 대한 인터페이스층을 제공할 수 있고, 또한 기타 콜 센터 모듈은 T-라이브러리(T-library), TLib, 또는 T-Lib으로 참조될 수 있는 인터페이스에 따라서 요청을 생성하고 또한 응답을 수신하는 것에 의해서 SIP 서버층과 인터페이스를 형성할 수 있다. 또한 콜 센터 내의 모듈 사이에서의 통신을 위해서, 이벤트 교환에 사용될 수 있는 SIP 및 소켓(socket)을 포함하는 기타 인터페이스를 사용할 수 있다. 예를 들면, 하나 이상의 통계 서버(322, statistics servers 또는 stat servers)를 채택하여 에이전트의 가용성과 같은 그와 같은 동적 데이터에 대한 정보를 수집하고 유지하도록 할 수 있으며, 이들 통계 서버(322)는 관련된 데이터에 대해서 SIP 클러스터(105)에 질의를 보내고, 또한 이 결과를 클라이언트가 사용할 수 있도록 한다. 그와 같은 클라이언트는 콜 센터의 운용을 모니터링하는 콜 센터 관리자에 의해서 운용되는 그래픽 사용자 인터페이스일 수 있다. 상호 작용 집중화 장비(interaction concentrator(120)(ICON 120)의 하나 이상의 인스턴스를 포함하고 있는 보고층 또한 SIP 서버층을 모니터하고, 또한 콜 센터로 걸려오는 호출에 대한 정보를 수집하고, 또한 이들을 후속 분석 또는 문제 해결에 사용하기 위해서 저장할 수 있다. 기타 클라이언트(125)는 SIP 클러스터(105) 및 통계 서버(322)의 모두와 상호 작용하여 관리, 문제 해결, 또는 보고 기능 등을 제공할 수 있다.
도 2는 예시적인 일 실시예에 따른, 복수의 지리적인 위치에 물리적으로 존재하고 있는, 복수의 국가에 걸쳐서 분산되어 있을 수 있는, 지리적으로 분산된 콜 센터를 도시한 도면이다. 데이터 센터(200)로 참조될 수 있는 일부 위치는, 데이터 센터(200) 외부의 네트워크로의 하나 이상의 통신 접속부, 예를 들면, 공중 전화 통신망(PSTN) 또는 인터넷 등과 함께, 컴퓨터, 데이터 스토리지 장비, 및 접속 장비와 같은 장비를 포함하고 있을 수 있다. 에이전트 사이트(210)로 참조될 수 있는 기타 위치는, 컴퓨터, 데이터 스토리지 장비, 및 접속 장비와 같은 장비, 및 에이전트 디바이스(338)(도 3 참조) 및 인간 에이전트가 에이전트 사이트(210) 내에서 근무하도록 하고 또한 에이전트 디바이스(338)를 사용하도록 하는 설비를 또한 포함하고 있을 수 있다. 에이전트 사이트(210)가 운용하는 하드웨어의 범위는 설비의 속성과 규모, 및 에이전트 사이트(210)가 수용하고자 의도하는 에이전트의 숫자에 따라서 달라질 수 있다. 대규모 에이전트 사이트(210)는 상당한 양의 컴퓨팅, 스토리지, 및 네트워킹 리소스를 운용할 수 있으며, 홈 에이전트(home agent), 예컨대, 자택 근무 중인 에이전트의 집 안에는 SIP 전화, 또는 SIP 전화와 컴퓨터, 또는 외부 통신 접속이 PSTN 접속인 경우라면, 전화 응용 프로그램 인터페이스(TAPI, Telephony Application Programming Interface) 층을 사용하는 전화 소프트웨어가 동작하는 컴퓨터를 포함하고 있을 수 있다. SIP 클러스터(105)는, SIP 서버(318)(도 3 참조), 예컨대, 몇 군데 또는 전체 지리적인 위치에서의 기기 상에서 동작하는 SIP 서버 프로세스의 인스턴스를 사용하여 콜 센터를 확장할 수 있다. SIP 클러스터(105)의 SIP 서버(318)는 각각 서로 통신할 수 있다.
도 3은 콜 센터일 수도 있고 또는 대규모 콜 센터의 일부일 수 있는 에이전트 사이트(210)의 일 예시적인 실시예를 도시하고 있으며, 콜 센터로부터 서비스를 받기를 원하는 고객, 잠재적인 고객, 또는 기타 최종 사용자(집합적으로 최종 사용자라고 참조함)는 자신의 최종 사용자 디바이스(310a - 310c)(집합적으로 310으로 참조함)를 통해서 콜 센터로의 (발신) 통화를 개시할 수 있다. 각각의 최종 사용자 디바이스(310)는, 본 발명이 속하는 기술 분야에서, 예를 들면, 전화, 무선 전화, 스마트 폰, 개인용 컴퓨터, 전자 태블릿, 및/또는 이와 유사한 것과 같은 통상적인 통신 디바이스일 수 있다. 호출(call)에 있어서의 접촉 메커니즘은 전통적인 전화 통화에서와 같이 실시간 음성 통신만으로 제한될 필요는 없고, 문자(text) 기반, 비디오 기반 등을 포함하는 비음성 통신을 포함할 수 있으며, 또한 이메일 또는 기타 비(非)실시간 통신 수단을 포함할 수 있다. 따라서, 본 명세서에서 사용되는 "호출"(call, 콜, 또는 호)이라는 용어는 전통적인 전화 통화만으로 제한되지 않으며 오히려 콜 센터에서 관여할 수 있는 임의의 통신 형태를 포함하고 있는 일반화된 용어이다.
최종 사용자 디바이스(310)가 거는 호출 및 최종 사용자 디바이스로 걸리는 호출은 사용되는 디바이스의 유형에 따라서 유선 전화, 이동 통신, 및/또는 데이터 통신 네트워크(314)를 포함할 수 있다. 예를 들면, 통신 네트워크(314)는 사설 또는 공중 전화 통신망(PSTN), 근거리 통신망(LAN, local area network), 사설 광역 통신망(WAN, wide area network), 및/또는, 예를 들면, 인터넷과 같은 공중(public) 광역 통신망을 포함하고 있을 수 있다. 통신 네트워크(314)는 또한 코드 분할 다중 접속(CDMA, code division multiple access) 네트워크, 유럽 표준 통화 방식(GSM, global system for mobile communications) 네트워크, 및/또는 본 기술 분야에서 통상적인 임의의 3G 또는 4G 네트워크를 포함하고 있을 수 있다.
예시적인 일 실시예에 따르면, 콜 센터는 통신 네트워크(314)에 결합되어 최종 사용자 및 콜 센터 사이에서의 호(call) 및/또는 데이터의 수신 및 송신을 위한 게이트웨이(312)를 포함하고 있다. 게이트웨이(312)는 콜 센터의 내부 네트워크 및 하나 이상의 외부 네트워크 사이에서의 인터페이스를 제공할 수 있다.
콜 센터는 또한 최종 사용자 디바이스(310) 및/또는 웹 서버(332)와의 음성 상호 작용이 아니라 미디어 상호 작용을 위한 멀티미디어/소셜 미디어 서버(324)(상호 작용 서버로도 참조될 수 있음)를 포함하고 있을 수 있다. 미디어 상호 작용은, 예를 들면, 이메일, 채팅, 문자 메시지, 웹, 소셜 미디어, 등과 관련되어 있을 수 있다. 웹 서버(332)는, 예를 들면, 최종 사용자가, 예를 들면, 페이스북(Facebook), 트위터(Twitter) 등을 구독할 수 있는 공지된 다양한 사회적 상호 작용(social interaction) 사이트를 운영하는 사회적 상호 작용 사이트를 포함하고 있을 수 있다. 웹 서버는 또한 콜 센터에 의해서 지원되는 기업용 웹 페이지를 제공할 수 있다. 최종 사용자는 이 웹 서버를 둘러보고 또한 기업의 제품 및 서비스에 대한 정보를 얻을 수 있다. 웹 페이지는 또한, 예를 들면, 웹 채팅, 음성 전화, 이메일, 웹상의 실시간 통신(WebRTC, web real time communication) 등을 통해서 콜 센터에 접촉하기 위한 메커니즘을 제공할 수 있다. 도 3에서는 단지 하나의 인스턴스를 갖는 각각의 서버에 대해서 나타내고 있지만, 콜 센터는 복수의 인스턴스를 갖는 임의의 서버를 포함하고 있을 수 있으며, 또한 복수의 인스턴스를 운영하여 부하를 분산하도록 하고 또한 성능을 개선하도록 하는 것이 바람직할 수 있다.
본 발명의 예시적인 일 실시예에 따르면, 게이트웨이(312)는 대화식 음성 응답(IVR, interactive voice response) 서버(334)에 결합되어 있다. IVR은 음성 및 키패드를 통해 입력되는 이중 톤 다중 주파수(DTMF, dual-tone multi-frequency) 톤(tone)을 사용하는 것을 통해서 컴퓨터가 인간과 상호 작용할 수 있도록 하는 기술이다. 원격 통신에 있어서, IVR은 고객으로 하여금 전화기 키패드 또는 음성 인식을 통해서 콜 센터와 상호 작용할 수 있도록 하며, 이후에 고객들은 IVR과의 대화에 이어서 자신들의 질문에 대해서 서비스받을 수 있다. IVR 시스템은 사전 녹음되거나 동적으로 생성되는 오디오와 반응하여 사용자로 하여금 어떻게 진행해야 하는 지를 지시할 수 있다. IVR 애플리케이션을 사용하여 거의 대부분의 기능을 제어할 수 있으며, 이 때 인터페이스는 일련의 간단한 상호 작용으로 분할되어질 수 있다. 예시적인 일 실시예에 있어서, IVR 서버(334)는, 예를 들면, 필요에 따라서 사용자에게 질의하기 위한 IVR 스크립트를 갖도록 구성된다. IVR 서버(334)는, 예를 들면, 필요에 따라서 사용자에게 질의하기 위한 IVR 스크립트를 갖도록 구성된다. 예를 들면, 은행용 콜 센터의 경우, 발신인(caller)에게, IVR 스크립트를 통해서, 계정 잔고를 알고 싶다면 "1 번을 누르세요"라고 할 수 있다. 이 경우에 있어서, IVR과의 연속적인 상호 작용이 있는 경우, 고객은 에이전트와 상담하지 않고서도 서비스를 받을 수 있다.
호(call)를 취급할 수 있는 적절한 에이전트가 사용 가능해지면, 이 호는 대응하는 에이전트 디바이스(338a - 338d)(집합적으로 338로 참조됨)로 전달된다. 에이전트 디바이스는 전화기일 수도 있고 또는 에이전트 데스크톱(agent desktop)으로 참조될 수 있는 에이전트 디바이스(338c)와 같은 디스플레이가 부착된 컴퓨터일 수도 있다. 발신인에 대해서 수집된 정보 및/또는 이 발신인의 이력 정보 또한 에이전트 디바이스에 제공되어 에이전트가 해당 호에 대한 서비스를 더욱 양호하게 수행하는데 도움을 줄 수 있다. 이와 관련하여, 각각의 에이전트 디바이스(338)는 통상 전화 통화, VoIP 통화 등에 적합한 전화기를 포함하고 있을 수 있다. 에이전트 디바이스(338)는 또한 콜 센터의 하나 이상의 서버와 통신하고 또한 콜 센터의 운영과 관련된 데이터 처리를 수행하기 위한 컴퓨터를 포함하고 있을 수 있다. 걸려오는 전화를 전환하기 위한 적절한 에이전트의 선택은, 예를 들면, 라우팅 서버(320)에 의해서 채택되는 호 전환 전략에 기초할 수 있으며, 또한 에이전트의 가용성, 숙련도, 및 기타, 예를 들면, 통계 서버(stat server)(322)로 참조될 수 있는 통계 서버(statistics server)(322)에 의해서 제공되는 호 전환 파라미터에 대한 정보에 더 기초할 수 있다. SIP 서버(318)는 에이전트 디바이스(338)로의 인터페이스를 제공한다.
멀티 미디어/소셜 미디어 서버(324) 또한, 최종 사용자에게, 최종 사용자 디바이스(310)로 다운로드될 모바일 애플리케이션(340)을 제공하도록 구성될 수 있다. 모바일 애플리케이션(340)은, 예를 들면, 콜 센터의 에이전트에 의해서 접촉하기 위한 목적으로, 사용자가 이용 가능한지, 또는 이용 불가능한지, 또는 사용자의 가용성이 불명인지 등을 나타내는 사용자 설정 가능한 세팅을 제공할 수 있다.
콜 센터는 또한 통계 서버(322)에 의해서 수집된 데이터로부터 리포트(report)를 생성하도록 구성된 리포팅 서버(328)를 포함하고 있을 수 있다. 그와 같은 리포트는, 예를 들면, 평균 대기 시간, 포기율, 에이전트 점유율 등과 같은 리소스의 상태와 관련되는 거의 실시간 리포트 또는 이력 리포트를 포함하고 있을 수 있다. 리포트는 자동적으로 또는 요청자(예컨대, 에이전트/관리자, 콜 센터 애플리케이션 등)로부터의 특정한 요청에 반응하여 생성될 수 있다.
디바이스 특성 및, 에이전트 숙련도와 같은 에이전트 속성과 같은 설정 정보를 저장하기 위해서, 시스템 내에 설정 서버(342)가 포함되어져 있을 수 있다. 설정 서버(342)는, 예를 들면, 객체나 프로세스에 대해서 이들이 언제 생성되었는지 시스템의 기동시에, 또는 바로 직후에 속성값을 제공할 수 있다. 부가 기능 서버(425)는 콜 센터 내에서 음성 메일 및 다이얼 플랜(dial plan)과 같은 다양한 부가 기능을 제공할 수 있으며, 또한 SIP 프록시(346)는 본 발명이 속하는 기술 분야에서 SIP 등록 서버로도 알려진 SIP 구성 요소(element)의 기능을 수행한다.
본 발명의 예시적인 일 실시예에 따르면, 콜 센터는 또한, 예를 들면, 에이전트, 고객, 고객과의 상호 작용 등과 관련된 정보와 같은 콜 센터 운영에 관련된 데이터를 저장하기 위한 대용량 스토리지 디바이스(330)를 포함하고 있을 수 있다. 대용량 스토리지 디바이스는 본 발명이 속하는 기술 분야에서 통상적인 바와 같이 하드 디스크 또는 디스크 어레이의 형태를 취할 수 있다.
도3의 각각의 다양한 서버는, 본 명세서 내에서 설명한 다양한 기능을 수행하기 위해서, 하나 이상의 컴퓨팅 디바이스에서, 하나 이상의 프로세서 상에서 실행되고, 컴퓨터 프로그램 명령을 실행하고, 또한 다른 시스템 컴포넌트와 함께 상호 작용하는 프로세스 또는 쓰레드일 수 있다. 컴퓨터 프로그램 명령은 메모리 내에 저장되어 있으며, 이 메모리는, 예를 들면, 랜덤 액세스 메모리(RAM, random access memory)와 같은 표준 메모리 디바이스를 사용하는 컴퓨팅 디바이스 내의 표준 메모리 디바이스로 구현되어 있을 수 있다. 컴퓨터 프로그램 명령은 또한, 예를 들면, CD-ROM, 플래시 드라이브 등과 같은, 기타 지속적 컴퓨터 판독 가능 매체에 저장되어 있을 수 있다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면, 컴퓨팅 디바이스가 펌 웨어(예컨대, 주문형 집적 회로(application-specific integrated circuit), 하드웨어, 또는 소프트웨어, 펌웨어, 및 하드웨어의 조합을 통해서 구현될 수 있을 알아야 한다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 예시적인 실시예의 범위로부터 이탈하지 않고도 다양한 컴퓨팅 디바이스의 기능이 단일 컴퓨팅 디바이스에 조합 또는 일체화되거나, 또는 특정 컴퓨팅 디바이스의 기능이 하나 이상의 다른 컴퓨팅 디바이스에 걸쳐서 분산되어질 수 있음을 알아야 한다. 서버는 소프트웨어 모듈일 수 있으며, 이는 또한 간단하게 모듈로도 참조될 수 있다. 콜 센터 내의 일련의 모듈은 서버들, 및 기타 모듈들을 포함할 수 있다.
각각의 모듈은 예를 들면 쓰레드(thread) 또는 프로세스(process)일 수 있다. 콜 센터 내의 모듈은 이벤트 및 메시지를 포함하는 다양한 수단에 의해서 통신할 수 있다. 두 개의 모듈은 점대점 소켓 접속(point-to-point socket connection)에 의해서 접속될 수 있으며, 또한 이 경우에 있어서 모듈 중 하나는 다른 모듈로 이벤트를 전송할 수 있다. 메시지는 메시지 서버(344)를 통해서 하나의 모듈로부터 다른 모듈로 전송될 수 있으며, 이 메시지 서버는 또한 브로드캐스트 메시지(broadcast message)를 복수의 수신 모듈로 실시간으로 전송하는 능력을 제공하고 있다. 본 발명이 속하는 기술 분야에서 공지된, SIP 메시지와 같은 기타 메시지 또한 콜 센터의 모듈 사이에서 및 콜 센터 외부 조직과 교환될 수 있다.
콜 센터에서 채택되는 소프트웨어 및 하드웨어가 모듈화되고, 확장 가능하고, 규모를 즉각적으로 확장하거나 축소할 수 있으며, 또한 고가용성 서비스를 제공하기에 적합한 것이면 유리할 수 있다. 모듈러 디자인은, 복수의 서로 다른 유형의 동일한 모듈의 복사본을 사용하여, 기동시에 구성되거나 실행 중에 재구성되어 이들 장점들을 제공하도록 동작할 수 있다. 전개 규모는 필요하다면 실행 중인 모듈의 갯수를 증가 또는 감소시키는 것에 의해서, 시스템에 프로세서를 추가하는 것에 의해서 변경될 수 있다. 고가용성은, 예를 들면, 모듈 사이에서의 상태 정보를 미러링하는 것에 의해서 제공될 수 있으며, 따라서 몇 개의 모듈은 임의의 주어진 태스크(task)를 수행하기 위해서 유지될 수 있으며, 따라서 소프트웨어 오류 또는 하드웨어 고장의 결과로서, 하나의 모듈이 고장나더라도, 필요하다면 다른 프로세스 상에서 동작하는 다른 모듈이, 이 고장난 모듈의 태스크를 수행할 수도 있다. 가용성은 데이터 흐름 또는 처리 리소스에서의 병목 현상을 회피하는 디자인 관례, 예컨대, 단일 중앙 위치를 통해서 대량의 데이터를 전환하는 것을 회피하는 디자인 관례에 의해서 달성될 수 있다.
도 4는 예시적인 일 실시예에 따라 부가 기능 서버층 및 SIP 프록시층(420)과 함께 SIP 클러스터를 형성하고 있는 몇 개의 SIP 서버(318)를 도시하고 있다. 각각의 SIP 서버(318)는, 세션 컨트롤러(SC, session controller)(405), 상호 작용 프록시(IP, interaction proxy)(410), 및 T-컨트롤러(TC, T-controller)(415)와 같은 몇 개의 모듈을 포함하고 있을 수 있으며, 이들의 각각은 SIP 서버 프로세스 내에서의 하나 이상의 쓰레드로서 실행될 수 있다. 두 개의 추가적인 층(layer)인, SIP 프록시(SP)층(420), 및 부가 기능 서버(FS, feature server)(425) 층은 SIP 서버(318)에 대한 서비스를 제공할 수 있다. SIP 프록시층(420)은, 예를 들면, SIP 프록시(346)의 인스턴스를 포함하고 있을 수 있다.
각각의 에이전트 디바이스는 하나 이상의 전화 번호부에 기재된 전화 번호(DN, directory numbers)와 관련되어 있을 수 있다. DN은 사용자 인터페이스에서의 네트워크 말단에 대한 식별자일 수 있다. 전화기는, 예를 들면, 자신의 전화 번호에 반응하는 DN을 가지고 있을 수 있으며, 또는 복수의 전화 회선을 지원하는 경우 각각의 전화 회선이 DN일 수 있는 복수의 DN을 가지고 있을 수 있다. 기타 DN은 호출(call)에 대한 위치를 일시적으로 유지하도록 제공하기 위해서 IVR 또는 세션 컨트롤러(405)(여기에서 DN은 전환점(route point)으로 알려져 있을 수 있음)로 구현될 수 있다. 이메일 주소, 또는 채팅을 위한 로그인 신원 정보와 같은 기타 사용자 인터페이스를 갖는 기타 유형의 식별자 또한 DN일 수 있다. SIP 서버(318)에 있어서, 각각의 T-컨트롤러(415)는, 예를 들면, 감독하거나 담당하는 것에 의해서 복수의 에이전트 디바이스 DN을 보유하고 있을 수 있으며, 이때 이런 맥락에 있어서 소유권은 다대일의 관계를 암시하고 있으며, 즉, 이 경우에 있어서, T-컨트롤러(415)는 다수의 에이전트 디바이스 DN을 보유하고 있을 수 있으며 또한 각각의 에이전트 디바이스 DN은 하나의 소유자를 가지고 있을 수 있다.
I. SIP 클러스터 크기의 동적 변경
운용에 있어서, SIP 클러스터(105)로부터 SIP 서버(318)를 제거하거나, SIP 서버(318)를 클러스터에 추가하는 것이 바람직한 경우가 있을 수 있다. 예를 들면, SIP 서버(318)가 실행되는 컴퓨팅 디바이스가 서비스를 필요로 하는 경우에, SIP 서버(318)는 SIP 클러스터(105)로부터 제거될 수 있으며, 또한 컴퓨팅 디바이스는 정지될 수 있다. 이 컴퓨팅 디바이스는 SIP 서버(318)의 신규 인스턴스가 시작될 수 있는 다른 컴퓨팅 디바이스로 교체될 수 있으며, 신규 SIP 서버는 SIP 클러스터(105)에 추가되어질 수 있다. 이들 조작이 가능한한 방해받지 않고 수행될 수 있으면 바람직할 것이다.
각각의 SIP 서버 인스턴스는 복수의 DN을 보유할 수 있는 T-컨트롤러(415)를 포함할 수 있으며, 보유하고 있는 DN에 대해서 상태 정보를 유지하고 있을 수 있다. T-컨트롤러는 다수의 DN, 예컨대 4, 000 DN을 보유하고 있을 수 있으며, 또한 콜 센터 내의 전체 DN의 갯수는 이 보다 훨씬 더 많을 수 있다. DN과의 상호 작용을 개시하는 콜 센터 내의 모듈이 이 DN을 보유하고 있는 T-컨트롤러를 식별하도록 하면 바람직할 수 있다. 그러나 그와 같은 각각의 모듈에서의 DN의 소유권에 대한 완전한 기록을 유지하는 것은 관련된 데이터의 양이 잠재적으로 대량이기 때문에 비용이 많이 들 수 있으며, 또한 이 데이터를 최신 상태로 유지하는 비용 또한, 예를 들면, SIP 서버(318) 또는 DN이 추가되거나 제거됨에 따라서 동적으로 변동된다. 또한, DN 소유권에 대한 완전한 기록을 중앙 집중식으로 저장하는 것과 관련된 모든 해결책은 데이터 흐름 또는 처리에서의 병목 현상을 초래할 수 있다. 이들 단점의 영향을 감소시키기 위해서, 해시 함수(hash function)를 사용하여 일련의 DN을 일련의 SIP 서버(318)에 매핑할 수 있으며, 따라서, 또한, 각각의 DN을 보유하고 있는 일련의 T-컨트롤러에 대해서도 매핑할 수 있다.
해시 함수가 SIP 서버(318)가 추가되거나 제거될 때 가능한 최소한으로 방해받는 속성을 갖는 것이 바람직할 수 있다. SIP 서버(318)가 추가되거나 제거되는 경우, 해시 함수에 의해서 이전에 다른 SIP 서버(318)에 매핑된 일부 DN은 신규 SIP 서버에 매핑될 수 있으며, 역으로 SIP 서버(318)가 제거되는 경우, 제거되는 SIP 서버에 매핑된 DN은 다른 SIP 서버(318)에 매핑되어질 수 있다. 신규 소유권 매핑이 최소수의 DN 변경으로 해결되면 바람직할 수 있다. 예를 들면, 제거되어질 SIP 서버에 할당된 DN에 대해서, 또는 추가되어진 SIP 서버로 전달되어질 DN에 대해서 소유권에서의 변동이 발생하도록 하면 바람직할 수 있다.
DN 소유자를 식별하기 위해서 사용된 해시 함수는 일련의 DN을 일련의 SIP 서버에 매핑할 수 있다. SIP 서버(318)가 추가되거나 제거되는 경우에 일련의 SIP 서버가 변경될 수 있기 때문에, 일련의 서버 식별자, 예컨대, 각각의 SIP 서버(318)에 할당된 고유 식별자는 해시 함수가 실행될 때의 입력이 될 수 있다. 소유자에게 매핑될 DN의 식별자 또한 해시 함수에 대한 입력이 될 수 있다. 해시 함수의 출력은 SIP 서버에서 실행되는 T-컨트롤러를 통해서, DN을 보유하고 있는 SIP 서버의 식별자일 수 있다.
예시적인 일 실시예에 있어서, SIP 서버(318)가 SIP 클러스터(105)로부터 제거되는 경우, 이 상태 정보 및, DN 소유권과 같은 권한을 다른 SIP 서버(318)로 전달하고, 따라서, 예컨대, 클러스터로부터 제거되어지는 SIP 서버에 의해서 보유되었던 DN의 운영은 중단없이 계속될 수 있다.
일 실시예에 있어서, 지속적 해싱(consistent hashing)을 사용하여 해시 함수를 제공함으로써 SIP 서버(318)가 추가되거나 제거될 때 거의 방해받지 않는 방식으로 각각의 DN을 그 소유자인 SIP 서버에 할당할 수 있다. 도 5a는 지속적 해시 함수에 의해서 6 개의 DN을 세 개의 SIP 서버에 매핑한 것을 도시한 레이아웃 다이아그램(layout diagram)을 나타내고 있으며, 도 5b는, 동일한 지속적 해시 함수에 의해서 6 개의 DN을 두 개의 SIP 서버에 매핑한 것을 나타내는 레이아웃 다이아그램이다. DN 식별자의 도메인을 일련의 SIP 서버 식별자에 매핑하는 지속적 해시 함수는 지속적 해시 함수일 필요는 없는 제 1 기본 해시 함수를 사용하여 DN 식별자를 일련의 정수일 수 있는 임시 범위(interim range)에 매핑하여 구축될 수 있다. 제 1 기본 해시 함수와 마찬가지로 동일한 범위를 가지고 있는 동일한 해시 함수일 수 있는 제 2 기본 해시 함수를 사용하여 SIP 서버 식별자를 동일한 임시 범위에 매핑할 수 있다. 임시 범위는 원(circle)으로 매핑될 수 있으며, 또한 지속적 해시 함수는, 이 원 상에서 시계 방향으로 진행할 때, 가장 근접한 SIP 서버 해시점(hash point)에 DN이 매핑될 때의 결과 매핑이다. 도 5a에 도시한 예시에 있어서, 초기 상태에 있어서, 제 1 DN(805) 및 제 2 DN(810)은 제 1 SIP 서버(815)에 매핑되어 있고, 제 3 DN(820), 제 4 DN(825), 및 제 5 DN(830)은 제 2 SIP 서버(835)에 매핑되어 있고, 또한 제 6 DN(840)은 제 3 SIP 서버(845)에 매핑되어 있다. 제 2 SIP 서버(835)가 제거되는 경우(도 5b 참조), 제 1 DN(805) 및 제 2 DN(810)은 제 1 SIP 서버(815)에 계속 매핑되어 남아 있게 되는데, 그 이유는 제 1 SIP 서버가 시계 방향으로 원의 가장 가까운 지점에 남아 있기 때문이다. 제 2 SIP 서버(835)를 제거한 이후에, 제 3 DN(820), 제 4 DN(825), 및 제 5 DN(830)은 제 3 SIP 서버에 매핑된다. 제 6 DN(840)은 제 3 SIP 서버(845)에 매핑된 채로 남아 있게 된다. 본 예시에 있어서, 제 2 SIP 서버(835)의 제거 결과, 서로 다른 소유주, 예컨대, SIP 서버로 이동하게 되는 DN은 제 3 DN(820), 제 4 DN(825), 및 제 5 DN(830)이며, 이들은 제 2 SIP 서버(835)가 제거된 이후에 제 2 SIP 서버(835)에 계속 매핑되어 남아 있을 수 없다. 본 예시에 있어서, 제 2 SIP 서버(835)의 제거 결과, 제 1 SIP 서버(815)에 매핑된 DN 중의 어떤 것도 제 3 SIP 서버(845)로 이동하지 않았으며, 그 반대도 마찬가지이다.
유사하게, 초기 상태가 제 1 SIP 서버(815) 및 제 3 SIP 서버(845)라는 두 개의 SIP 서버를 가진 도 5b 중의 하나이고, 최종 상태가 세 개의 SIP 서버를 갖는 도 5a 중의 하나인 경우라면, 제 2 SIP 서버(835)라는 하나의 SIP 서버를 추가하면, 새롭게 추가되는 제 2 SIP 서버(835)로 이동하게 되는 제 3 DN(820), 제 4 DN(825), 및 제 5 DN(830)의 세 개의 DN을 다시 재할당하게 된다.
SIP 서버 전체에 걸친 DN의 분포의 균일성은 각각의 SIP 서버 식별자의 하나 이상의 복사본을 상술한 범위, 예컨대, 원(circle) 상에 해싱하는 것에 의해서 개선될 수 있다. 이는, 예를 들면, 각각의 SIP 서버에 대해서, 한번에 하나씩, 매번 해시 함수의 최종 실행의 출력을 입력으로서 사용하여 반복적으로 기본 해시 함수 중의 하나 또는 동일한 범위를 갖는 다른 해시 함수를 실행하는 것에 의해서 수행될 수 있다. 각각의 새로운 출력은 이 범위 내의 추가적인 복사본을 형성한다. 본 예시에 있어서, SIP 서버 식별자 또는 그 복사본 중의 하나가 DN 식별자의 해시에 대해서 시계 방향으로의 원 상의 최근접 지점에 있는 경우에 SIP 서버(318)에 DN이 매핑될 수 있다. 도 5c는 예시적인 일 실시예에 따른, SIP 서버 식별자의 복사본을 사용하여 형성된 매핑의 레이아웃 다이아그램을 나타내고 있다. 제 1 SIP 서버(815)의 복사본(850, 855), 제 2 SIP 서버(835)의 복사본(860, 865), 및 제 3 SIP 서버(845)의 복사본(870, 875)이 추가되는 경우라면, 지속적 해시 함수는 제 3 DN(820) 및 제 4 DN(825)을 그 복사본(850)을 통해서 제 1 SIP 서버(815)에 매핑하고, 제 1 DN(805) 및 제 5 DN(830)을 제 2 SIP 서버(835)(전자인 복사본(860)을 통해서)에 매핑하고, 제 2 DN(810) 및 제 6 DN(840)을 제 3 SIP 서버(845)(전자인 복사본(870)을 통해서)에 매핑하게 되는데, 예컨대, 두 개의 DN이 각각의 SIP 서버에 매핑된다. 복사본의 사용 및 그 결과 SIP 서버에 걸친 분포의 균일성이 향상되는 것은 다양한 SIP 서버에 의해서 보유하고 있는 DN의 갯수가 이들 복사본을 사용하지 않는 경우에 비해서 더욱 더 거의 동일하다는 것을 의미할 수 있으며, 복사본을 사용하지 않는 경우 일부 SIP 서버는 거의 보유하지 못하고 일부 서버는 많이 보유할 수 있다. 이들 예시에 있어서 설명을 위한 목적으로 특정한 숫자의 SIP 서버 및 DN을 사용하였지만, 본 발명은 이에 한정되지 않고, 또한 서로 다른 숫자의 SIP 서버 및 DN을 사용할 수도 있다.
지속적 해시 기법은, Karger, D.; Lehman, E.; Leighton, T.; Panigrahy, R.; Levine, M.; Lewin, D. (1997) "Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web, " Proceedings of the Twenty-ninth Annual ACM Symposium on Theory of Computing에서 논의되었으며, 그 내용은 참조에 의해서 본 명세서에 합체된다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게는 본 발명이 본 예시에서 설명된 지속적 해시로 제한되지 않으며, 또한, 예를 들면, 임시 범위는, 예를 들면, 부동 소수점 숫자의 범위 내, 또는 문자열 값의 범위 내일 수도 있음은 명백하다. 또한, 임시 범위를 원에 매핑하는 것은 중첩되는 특성을 갖는 범위에 매핑하는 것을 설명하기 위한 개념적인 장치이며, 따라서 상술한 범위 내의 마지막 구성 요소는 첫번째와 인접하게 되도록 한정되었다는 것 역시 명백하다. DN은 최인접 SIP 서버에 시계 방향 대신에 반시계 방향으로 동일하게 양호하게 매핑될 수 있다. 해시 함수는 지속적 해시 함수일 필요는 없으며 오히려 일련의 소유주가 변경될 때 최소 방해, 예컨대 보유 중인 객체, 예컨대 DN의, 예컨대 SIP 서버 또는 T-컨트롤러로의 재매핑을 최소화하는 특징을 갖거나 갖지 않는 임의의 다른 해시 함수일 수도 있다.
콜 센터가 지리적으로 분산되어 있는 경우, 보유 중인 DN이 T-컨트롤러를 통함에 따라서 SIP 서버의 인스턴스가 근접한, 예컨대, 동일한 국가 내에 위치하는 것이 바람직할 수 있다. 이는 서로 다른 지리적인 위치에 대해서 서로 다른 지속적 해시 함수를 한정하는 것에 의해서 달성될 수 있다. 예를 들면, 국가 A에서의 DN의 소유주를 결정하기 위해서는, 국가 A에서 실행되는 SIP 서버에 대응하는 SIP 서버 식별자를 포함하는 입력을 사용하여 지속적 해시 함수가 실행될 수 있다.
도 6은 예시적인 일 실시예에 따른 SIP 클러스터에 SIP 서버를 추가하는 것을 나타내는 메시지 시퀀스(message sequence)이다. SIP 클러스터에 SIP 서버를 추가하는 것은 몇 가지 단계로 진행될 수 있다. 단계(905)에 있어서, 추가될 SIP 서버(901)는, 각각의 기존 SIP 서버(902)로 개시 메시지를 전송하여, 이들에게 신규 SIP 서버(901)를 추가하는 프로세스가 개시되었음을 통지할 수 있다. 각각의 기존 SIP 서버(902)는, 단계(910)에서 있어서, 개시 승인(acknowledge, ACK) 메시지로 응답할 수 있다. 단계(915)에 있어서, 신규 SIP 서버(901)는 기존 SIP 서버(902)로 상태 전달 요청을 전송할 수 있다. 기존 SIP 서버(902)는, 단계(920)에 있어서, 신규 SIP 서버(901)를 포함하는 SIP 서버 목록을 사용하여 실행되어질 수 있는 해시 함수에 의해서 결정되는 바와 같이, 이동될 임의의 DN에 대한 상태 정보를, 신규 SIP 서버(901)로 전달하는 것에 의해서 반응할 수 있다. 그와 같은 상태 정보는 DN의 상태를 포함할 수 있다. 예컨대, DN이 수화기를 들고 있는지, 수화기를 내려 놓았는지의 여부, 호(call)가 DN으로부터 다이얼된 것인지의 여부, 또는, DN이 통화 후 작업 상태인지, 즉 하나의 통화가 종료된 이후에 에이전트가 사후 처리를 수행할 때 사용하고 있는 지의 여부를 포함하고 있을 수 있다. 신규 SIP 서버(901)는, 단계(935)에 있어서, 각각의 기존 SIP 서버로 커밋 메시지를 송신하여 이 신규 SIP 클러스터 구성을 확정하며, 이렇게 되면 여기에는 신규 SIP 서버(901)를 포함하고 있을 수 있다. 개시 메시지의 수신 및 커밋 메시지의 수신 사이의 간격에 있어서, 기존 SIP 서버는 이벤트의 처리를 중단할 수 있다. 커밋 메시지는, 다른 SIP 서버에게, 신규 SIP 서버의 추가가 확정되었고 또한 다른 SIP 서버는 이동한 DN에 대해서 더 이상 담당하지 않아도 된다는 것, 및 이들 DN에 대한 상태 정보를 삭제해도 된다는 것을 통지할 수 있다. 본 예시에 있어서, 이들 단계는 특정한 순서대로 설명하였지만, 본 발명은 이들 단계가 이 순서대로 발생하는 것으로 제한되지 않으며, 또한 일부 또는 전체 단계는 서로 다른 순서, 또는 병렬적으로 발생할 수도 있다.
도 7은 예시적인 일 실시예에 따른 SIP 클러스터에 SIP 서버를 삭제하는 것을 나타내는 메시지 시퀀스이다. SIP 서버(1001)가 SIP 클러스터로부터 삭제되는 경우, 자신이 보유하고 있는 상태 정보를 SIP 클러스터 내의 다른 SIP 서버(1002)로 전달할 수 있다. 단계(1005)에 있어서, 삭제되는 SIP 서버(1001)는 개시 메시지를 각각의 다른 SIP 서버(1002)로 송신하여, 이들에게 제거될 SIP 서버의 제거 프로세스가 시작되었음을 통지할 수 있다. 각각의 다른 SIP 서버(1002)는, 단계(1010)에서 있어서, 개시 승인 메시지로 응답할 수 있다. 제거될 SIP 서버는, 단계(1015)에 있어서, 자신의 상태 정보를 다른 SIP 서버로 전달하여, 각각의 DN에 대한 상태 정보를 이 DN의 소유자가 될 SIP 서버로 전달 할 수 있다. 각각의 DN에 대한 신규 소유자는 제거될 SIP 서버(1001)를 제외한 SIP 목록을 사용하여 실행되는 해시 함수에 의해서 식별된다. 각각의 기타 SIP 서버(1002)는, 단계(1020)에 있어서, 상태 정보를 수신하였음을 승인하는 상태 정보 승인 메시지를 전송할 수 있고, 또한, 단계(1025)에 있어서, 제거되는 SIP 서버는 커밋(commit) 메시지를 전송할 수 있다. 제거되는 SIP 서버는 개시 메시지를 송신할 때 이벤트 처리를 중단할 수 있다. 기타 SIP 서버는, 영향을 받은 DN과 관련된 모든 이벤트가 끊기지 않은 상태로 계속 연결시켜 두는 것에 의해서, 예를 들면, 개시 메시지 및 커밋 메시지의 수신 사이의 간격에서 이벤트의 처리를 중단할 수 있다. 커밋 메시지는, 다른 SIP 서버에게, 제거될 SIP 서버(1001)의 제거가 확정되었고 또한 다른 SIP 서버가 이들 DN을 담당하고 있다는 것, 및 이들 DN에 대한 상태 정보를 유지하고 있다는 것을 통지할 수 있다. 본 예시에 있어서, 이들 단계는 특정한 순서대로 설명하였지만, 본 발명은 이들 단계가 이 순서대로 발생하는 것으로 제한되지 않으며, 또한 일부 또는 전체 단계는 서로 다른 순서, 또는 병렬적으로 발생할 수도 있다.
도 8은 예시적인 일 실시예에 따른 두 개의 SIP 서버를 SIP 클러스터에 추가하려는 시도가 실패한 것으로부터 회복하는 것을 나타낸 메시지 시퀀스 다이아그램이다. SIP 서버(1101)를 추가하려는 시도는 거의 동시에 다른 SIP 서버(1102)를 추가하려는 시도가 있는 경우에 실패할 수 있다. 예를 들면, 단계(1105)에 있어서, 제 1 신규 SIP 서버(1101)는 제 1 개시 메시지를 기존 SIP 서버(1103, 1104)로 전송할 수 있으며, 또한, 단계(1110)에 있어서, 제 2 신규 SIP 서버(1102)는 제 2 개시 메시지를 기존 SIP 서버(1103, 1104)로 전송할 수 있다. 제 1 기존 SIP 서버(1103)는 먼저 제 1 개시 메시지를 수신할 수 있는 반면에, 제 2 기존 SIP 서버(1104)는 먼저 제 2 개시 메시지를 수신할 수 있다. 이 경우에 있어서, 제 1 기존 SIP 서버(1103)는 제 1 신규 SIP 서버(1101)에 승인 메시지로 응답하고 또한 제 2 신규 SIP 서버(1102)로는 에러 메시지를 전송하고, 또한 제 2 신규 SIP 서버(1104)는 제 2 신규 SIP 서버(1102)에 승인 메시지로 응답하고 또한 제 1 신규 SIP 서버(1101)로는 에러 메시지를 전송할 수 있다. 개시 메시지에 대한 응답으로 에러 메시지를 수신한 각각의 신규 SIP 서버(1103, 1104)는 취소 메시지(1120, 1125)를 기존 SIP 서버로 전송하고, 신규 SIP 서버를 추가하고 하는 시도를 종료할 수 있다. 추가되어질 SIP 서버는, 임의 시간 대기한 이후에, 각각 SIP 클러스터에 합류하고자 하는 새로운 시도를 시작할 수 있다. 본 예시에 있어서, 이들 단계는 특정한 순서대로 설명하였지만, 본 발명은 이들 단계가 이 순서대로 발생하는 것으로 제한되지 않으며, 또한 일부 또는 전체 단계는 서로 다른 순서, 또는 병렬적으로 발생할 수도 있다.
SIP 서버 목록이 지속적 해시 함수의 입력이 될 수 있기 때문에, 이 해시 함수를 실행하게 되는 임의의 모듈은 SIP 서버 목록을 유지하고 있을 수 있다. SIP 서버가 클러스터에 추가되거나 삭제되는 경우, SIP 서버 목록을 유지하고 있을 수 있는 설정 서버에 통지될 수 있다. 설정 서버는 SIP 서버 목록의 갱신을 수신하도록 이전에 등록된 각각의 모듈로 메시지 또는 이벤트의 형태로 갱신 통지, 변경 선언을 전송할 수 있다. 각각의 모듈이 설정 서버와 같은 중앙 위치로부터 갱신된 SIP 서버 목록을 획득하고자 하는 시도를 회피하기 위해서, 매번 지속적 해시 함수가 실행된다.
II. 분산형 시스템에서 에이전트 예약
콜 센터에 호(call)가 도착하면, 발신자의 콜 센터와의 이력 및 이 호의 목적과 같은 이 호에 대한 정보 및 발신자에 대한 정보가 수집될 수 있다. 타겟 에이전트, 예컨대 이 호를 처리하기에 적합한 에이전트가 모듈에 의해서 식별될 수 있으며, 또한 타겟 에이전트가 도달할 수 있는 DN으로 이 호를 전환하는 것이 바람직할 수 있다. 그렇게 하기 위해서는, 이 DN을 보유하고 있는 모듈, 예컨대, 이 DN을 보유하고 있는 T-컨트롤러, 또는 이 DN을 보유하고 있는 T-컨트롤러를 포함하고 있는 SIP 서버를 식별하는 것이 바람직할 수 있다. 이 식별은 DN을 SIP 서버로 매핑하는 해시 함수를 사용하여 수행될 수 있다.
도 9는, 예시적인 일 실시예에 있어서, 호(call)의 처리 및 전환에 참여할 수 있는 몇 가지 모듈을 나타내고 있다. 호가 콜 센터에 도달하게 되면, 이 호는 SIP 프록시층에서 취급되어 제 1 세션 컨트롤러(510)로 할당되어진다. 할당은, 예를 들면, 라운드 로빈 알고리즘(round-robin algorithm)을 사용하여 세션 컨트롤러(405) 상의 부하를, 가능한 한, 분산하는 방식으로 이루어질 수 있다. 제 1 세션 컨트롤러(510)는, 예를 들면, 제 1 SIP 서버(515) 내에서 실행되는 쓰레드를 통하는, 제 1 SIP 서버의 일부이다. 일단 제 1 세션 컨트롤러(510)에 할당되면, 이 호는 초기에, 예를 들면, 임시로 이 호를 유지하기 위해서 제 1 세션 컨트롤러(510) 내의 DN과 같은 제 1 세션 컨트롤러(510) 내의 전환점 상에 위치하게 된다. 라우팅 서버(URS)(320)는 통계 서버(322)(도 3 참조)에 의해서 제공되는 특정 기준을 충족하는 가용 에이전트 목록에 예약되어 있을 수 있다. 이 기준은, 예를 들면, 소정의 숙련도의 조합을 포함하고 있을 수 있다. 소정의 기준을 충족하는 에이전트가 사용 가능하게 되거나, 또는 불가능하게 되는 경우, 통계 서버는 라우팅 서버(320)로 통지를 전송하여, 에이전트 및 에이전트의 DN, 예컨대, 에이전트가 로그인한 DN을 식별하고, 또한 이 에이전트가 사용 가능한지 또는 사용 불가능한지를 규정할 수 있다. 이는 라우팅 서버(320)가 기준을 충족하는 사용 가능한 에이전트 및 이들의 대응하는 DN의 최신 목록을 유지하도록 할 수 있다. 호(call)가 제 1 세션 컨트롤러(510) 내의 전환점에 도달하게 되면, 세션 컨트롤러는 호 데이터를 포함하고 있을 수 있는 이벤트를 라우팅 서버(320)를 포함하는 다양한 클라이언트로 송신하여, 이들에게 호가 도달하였음을 통지할 수 있다. 이 이벤트를 수신하게 되면, 라우팅 서버는, 예를 들면, 관심 제품을 식별한 IVR 응답을 포함하고 있을 수 있는 호 데이터를 사용하여 사용 가능한 에이전트 목록으로부터 적절한 에이전트, 예컨대 상기 제품에 익숙한 에이전트를 선택하도록 할 수 있다. 따라서, 라우팅 서버(320)가 호를 전환하려고 시도하는 타겟 에이전트 및 DN을 선택하게 되면, 라우팅 서버(320)가 실행되고 있는 컴퓨팅 디바이스는 이 호를 처리하기에 적절한 리소스(예컨대, 에이전트 및 DN)를 식별한다.
암시적인 에이전트 예약과 관련된 것으로 참조될 수 있는 일 실시예에 있어서, 일단 라우팅 서버(320)가 호가 전환되는 타겟 DN(530)을 선택하게 되면, 라우팅 서버(320)는 제 1 세션 컨트롤러(510)(도 9의 "세션 컨트롤러 2")로 내장된 암시적인 에이전트 예약 요청을 갖는 전환(routing) 요청을 전송하여, 제 1 세션 컨트롤러(510)가 호를 타겟 DN(530)(도 9의 "DN 1")으로 전환하도록 시도할 수 있다. 타겟 DN(530)은 SIP 서버(535) 내의 T-컨트롤러(525)가 보유하고 있을 수 있지만, 제 1 세션 컨트롤러(510)는 타겟 DN(530)의 위치에 대한 정보가 부족, 예컨대, 전환 요청 내에 타겟 DN(530)에 대한 식별자를 수신하였을 수는 있지만, 타겟 DN(530)을 보유하고 있는 T-컨트롤러, 또는 이 T-컨트롤러를 포함하고 있는 SIP 서버에 대한 식별자가 결여되어 있을 수 있다. 일 실시예에 따르면, 타겟 DN(530)을 담당하는 SIP 서버(535)의 식별은 해시 함수에 기초하고 있으며, 이 해시 함수는 호에 할당된 제 1 세션 컨트롤러(510)에 의해서 실행되어질 수 있다. 일 실시예에 따르면, 해시 함수는 입력 DN, 예컨대 타켓 DN(530)을 보유하고 있는 T-컨트롤러(525)를 포함하고 있는 SIP 서버(535)에 대한 고유 식별자에 대해서 입력 DN을 매핑한다.
도시된 예시에 있어서, 제 1 세션 컨트롤러(510)는 라우팅 서버에 의해서 식별되는 타겟 DN(530)을 입력으로서 사용하는 해시 함수를 실행하고, 또한, 해시 함수에 기초하여, 본 예시에 따르면, 타겟 DN(530)을 보유하고 있는 제 2 세션 컨트롤러(520)를 식별하도록 구성된다. 소유자가 식별되면, 제 1 세션 컨트롤러(510)는 제 2 세션 컨트롤러(520)로 에이전트 예약 요청을 전달한다. 다른 실시예에 있어서, T-컨트롤러는 대신에 다음 일부 기능을 수행할 수 있다. 즉, 제 1 세션 컨트롤러(510)는 제 1 세션 컨트롤러(510)와 마찬가지로 동일한 SIP 서버(515)에 위치하는 T-컨트롤러(505)로 에이전트 예약 요청을 전송한다. T-컨트롤러(505)는 라우팅 서버(320)에 의해서 식별되는 타겟 DN(530)을 입력하여 해시 함수를 실행하고, 또한, 해시 함수에 기초하여, 본 실시예에 따르면, 타겟 DN(530)을 보유하고 있는 T-컨트롤러(525)를 식별하도록 구성된다. 소유자가 식별되면, T-컨트롤러(505)는 타겟 DN(530)을 보유하고 있는 T-컨트롤러(525)로 에이전트 예약 요청을 전달한다.
도시된 예시에 있어서, 제 2 SIP 서버(535) 내에서 실행되는 T-컨트롤러(525)는 에이전트 예약 요청을 수신하고, 또한, 따라서, 내부에서 T-컨트롤러(525)가 실행되는 컴퓨팅 디바이스는 이 요청을 수신하게 된다. 본 명세서에서 사용된 용어에 있어서, 컴퓨팅 디바이스(computing device)는 요청이 서로 다른 컴퓨팅 디바이스 또는 동일한 컴퓨팅 디바이스에서 실행되는 쓰레드 또는 프로세스로부터 유래되는 요청을 수신하는 것으로 언급되어졌다.
T-컨트롤러(525)가 에이전트 예약 요청을 수신하게 되면, 이 예약을 허가하는 메시지, 또는 거부하는 메시지로 응답할 수 있다. 요청이 허가되면, 제 1 세션 컨트롤러(510)는 호를 에이전트의 DN(530)으로 전달하며, 요청이 거부되면, 제 1 세션 컨트롤러(510)는 라우팅 서버(320)로 통지할 수 있고, 이 서버는 호를 취급하기 위한 대체 에이전트에 대해서 통계 서버(322)로 갱신 요청을 보낼 수 있다.
도 10은 일 실시예에 따른 분산형 에이전트 예약에 대한 프로세스의 플로 다이아그램이다. 단계(610)에 있어서, 컴퓨팅 디바이스 상에서 실행되는 라우팅 서버(320)는 제 1 세션 컨트롤러(510)에 의해서 유지된 호(call)를 처리하기에 적합한 리소스, 예컨대, 에이전트를 식별하고, 또한 이 정보를 제 1 세션 컨트롤러(510)로 전송한다. 단계(620)에 있어서, 제 1 세션 컨트롤러(510)는 해시 함수를 실행하여 리소스를 담당하는 SIP 서버를 식별하고, 또한, 단계(630)에 있어서, 제 1 세션 컨트롤러(510)는 에이전트 예약 요청을 식별된 SIP 서버 내의 T-컨트롤러로 전송한다. T-컨트롤러는, 단계(640)에서, 요청을 수신한다. 단계(645)에 있어서, T-컨트롤러는 후술하는 바와 같이 예약 중재를 수행하여, 요청을 허가할 지 거부할 지를 결정한다. 일 실시예에 있어서, 예약 중재는 T-컨트롤러 내의 에이전트 예약 모듈에 의해서 수행된다. 요청이 허가되는 경우, 제 1 세션 컨트롤러(510)는 단계(660)에서 콜을 전환하며, 그게 아니라면, 이 프로세스는 대차 라우팅 서버(320)를 사용하여 다른 리소스의 식별을 시작한다. 상술한 바와 같이, 일 실시예에 있어서, 해시 함수의 실행과 같은 일부 단계는 다른 모듈, 예컨대, T-컨트롤러에 의해서 수행된다. 본 예시에 있어서, 이들 단계는 특정한 순서대로 설명하였지만, 본 발명은 이들 단계가 이 순서대로 발생하는 것으로 제한되지 않으며, 또한 일부 또는 전체 단계는 서로 다른 순서, 또는 병렬적으로 발생할 수도 있다.
DN이 이미 예약된 경우, 예컨대, 다른 라우팅 서버가 이미 에이전트 예약 요청을 전송하였고 이것이 허가된 경우, T-컨트롤러는 에이전트 예약 요청을 거절할 수 있다. T-컨트롤러(525)가 에이전트 예약 요청을 아직 허가하기 않은 경우라면, T-컨트롤러(525)는 중재 프로세스를 사용하여 이 요청을 허가할 지 거부할 지를 결정할 수 있다. 예시적인 일 실시예에 있어서, T-컨트롤러(525)는 다른 호(call)의 도달에 대응하는 다른 에이전트 예약 요청에 대해서 일정 시간 동안 대기하며, 또한, 예를 들면, 가장 높은 우선 순위를 갖는 에이전트 예약 요청은 허가하고, 다른 요청은 거부한다. 몇 개의 에이전트 예약 요청이 동일한 우선 순위를 갖는 경우, 임의적으로, 하나를 선택하여 허가하고, 나머지는 거절할 수 있다. 에이전트 예약 요청의 우선 순위는 라우팅 서버(320)에 의해서, 예를 들면, 발신인의 가치, 예컨대, 발신인이 해당 기업의 현저한 수익원이 될 것으로 기대되는 지의 여부, 대기 시간, 예컨대, 발신인이 에이전트와 대화하기 위해서 기다리고 있었던 시간의 길이, 호에 대한 에이전트의 적합성, 및/또는 호에 대한 다른 에이전트의 적합성과 같은 발신인의 특징을 포함하는 다양한 기준을 고려한 알고리즘을 사용하여 평가될 수 있다. 예를 들면, 요청은 발신인이 특정 상품에 대한 도움을 필요로 하는 경우 또한 에이전트가 콜 센터 내에서 이 상품에 대해 친숙한 몇 안되는 에이전트 중의 하나라면 더 높은 우선 순위가 부여될 수 있다. 라우팅 서버는 이후에 에이전트 예약 요청과 함께 호의 우선 순위에 대한 평가를 전송할 수 있다. 일 실시예에 있어서, 예약 중재는 T-컨트롤러 내의 에이전트 예약 모듈에 의해서 수행된다.
라우팅 서버(320)는 호 전환 및/또는 에이전트 선택에 대해서 이들이 행해지면 상호간 통신하여, 두 개의 라우터(320)가 서로 다른 호(call)를 동일한 에이전트로 전환하려고 시도할 가능성을 감소시킬 수 있다. 하지만 이 메커니즘은 절대 확실한 것은 아닌데, 이는 부분적으로 라우팅 서버(320)가 서로 다른 컴퓨팅 디바이스 상에서 실행될 수 있어, 통신 지연을 초래할 수 있기 때문이다. 에이전트 예약 모듈은 에이전트 및 DN에 대해서 중심 중재자처럼 동작하여, 복수의 라우팅 서버(320)에 대해서 신뢰성 있는 허가 응답을 획득할 수 있도록 하거나 에이전트 예약 요청을 거부할 수 있도록 한다.
예시적인 일 실시예에 있어서, 제 1 세션 컨트롤러(510)는 전환 요청 내에 포함되어 있지 않은 에이전트 예약 요청을 제 1 세션 컨트롤러(510)로 전송하는 것에 의해서 명시적인 에이전트 예약 요청을 행할 수 있다. 제 2 세션 컨트롤러(510)는 제 2 세션 컨트롤러(520)를 식별하기 위한 해시 함수를 실행하고, 제 2 세션 컨트롤러(520)로 에이전트 예약 요청을 전송하고, 또한, 에이전트 예약 요청이 허가되었는지 아닌지에 따라서, 에이전트 예약 요청이 허가되었는 지를 표시하는 응답을 라우팅 서버(320)로 전송할 수 있다. 에이전트 예약 요청이 허가되면, 이후에 라우터는 요청을 제 1 세션 컨트롤러(510)로 전환하며, 이 컨트롤러는 호를 타겟 DN(530)을 보유하고 있는 T-컨트롤러(525)로 전환한다.
여기에서 설명한 예시들에 있어서 에이전트가 단일 DN과 관련되어 있지만, 본 발명은 이 경우로 한정되지 않으며, 또한 예약 논리는 에이전트가 로그인하는 하나 이상의 DN, 또는 다르게는 이들과 관련되는 구성을 포함하도록 확장될 수 있다.
본 발명에서의 것과 같은 모듈화 접근 방식은 몇 가지 장점을 제공하는데, 이에는 확장 가능성, 예컨대, 성능에서의 병목 현상에 의해서 제한받지 않고 구현의 규모를 확장할 수 있는 능력, 및 회복력, 예컨대, 시스템을 신속하게 조정할 수 있으면서 구성 요소의 고장에 의한 방해가 없는 능력이 포함된다.
III. 분산형 시스템에서 이벤트를 에이전트로 전달하기
에이전트 예약 요청이 허가되면, 제 1 세션 컨트롤러(510)는, 호를 타겟 DN(530)으로 전환하는 것에 추가하여, 타겟 DN(530)에서 벨이 울리도록 하는 벨 소리 이벤트와 같은 이벤트, 또는 호와 관련된 정보가 에이전트에게 사용 가능하도록 하기 위한, 예를 들면 스크린 팝(screen pop)의 형태로서의 스크린 팝 이벤트를 생성할 수 있다. 이 이벤트는, 에이전트 예약 요청과 마찬가지로, 스크린 팝이 나타나게 되는 에이전트 디바이스를 보유하고 있는 T-컨트롤러로 전환되어진다. T-컨트롤러는 타겟 DN(530)을 보유하고 있는 T-컨트롤러(525)와 동일한 T-컨트롤러일 수 있으며, 예시적인 일 실시예에 있어서, 예를 들면, 에이전트 디바이스는 디스플레이 장치 및 전화 기능을 포함하고 있는 일체형 디바이스이며, 또한 에이전트 디바이스는 단일 DN을 가지고 있다. 스크린 팝 이벤트를 타겟 디바이스로 전환하기 위해서, 제 1 세션 컨트롤러(510)는 해시 함수를 실행하고, 인수(argument)로서 DN 내로 전달하고 또한 출력으로서 식별자, 예컨대 고유 문자열을 수신하며, 에이전트 디바이스를 보유하고 있는 T-컨트롤러(525)를 포함하고 있는 SIP 서버를 식별한다. 이런 맥락에 있어서, 에이전트 디바이스는 리소스의 다른 예이다. 이후에 제 1 세션 컨트롤러(510)는 이벤트를 T-컨트롤러(525)로 전달하고, 이 컨트롤러는 이벤트를 에이전트 디바이스로 전달하여, 에이전트 디바이스가 이벤트에 응답하도록, 예컨대 벨 소리 이벤트에 반응하여 벨 소리 경고를 생성하는 것에 의해서, 또는 스크린 팝 이벤트에 반응하여 스크린 팝을 표시하는 것에 의해서 출력을 에이전트로 제공한다.
도 11은 일 실시예에 따른 분산형 이벤트 전달 프로세스에 대한 플로 다이아그램을 도시한 도면이다. 단계(710)에 있어서, 제 1 세션 컨트롤러(510)가 이벤트를 생성하여 실행하고 있는 컴퓨팅 디바이스는, 제 1 세션 컨트롤러(510)의 재차 실행을 통해서, 단계(720)에 있어서, 해시 함수를 실행하는 것에 의해서, 이벤트가 어느 SIP 서버로 전달되어야 할 지를 식별한다. 단계(730)에 있어서, 제 1 세션 컨트롤러(510)는 이벤트가 전달되어야 하는 SIP 서버 내의 T-컨트롤러로 이벤트를 전송하고, 이 T-컨트롤러는, 단계(740)에 있어서, 이 이벤트를 수신하며, 에이전트 디바이스는 에이전트를 위해서, 벨 소리 경고, 또는 스크린 팝(screen pop)과 같은 출력을 생성한다. 본 예시에 있어서, 이들 단계는 특정한 순서대로 설명하였지만, 본 발명은 이들 단계가 이 순서대로 발생하는 것으로 제한되지 않으며, 또한 일부 또는 전체 단계는 서로 다른 순서, 또는 병렬적으로 발생할 수도 있다.
IV. 분산형 시스템에서의 로그 파일의 분석
콘 센터 내의 다양한 모듈에서 실행되는 쓰레드는, 실행 중에, 로그 파일(log file)로 참조될 수 있는, 실행의 다양한 측면에 대한 레코드(record)를 생성할 수 있다. 예를 들면, 쓰레드는 다른 쓰레드로 전송하거나, 또는 다른 쓰레드로부터 수신하는 각각의 메시지 또는 이벤트를 기록(record 또는 log)할 수 있다. 실행 중에, 각각의 쓰레드는 별도의 로그 파일에 기입된다. 경우에 따라서, 콜 센터의 성능을 평가하거나, 비일상적이거나 오류가 발생한 황동을 진단하기 위해서 이와 같은 로그 파일을 검토하거나 분석하는 것이 바람직할 수 있다. 하지만, 로그 파일은 크기가 클 수 있으며, 임의의 특정 조사에 대해서, 로그 파일 내의 일부 정보에 대해서는 관심사가 낮을 수도 있다. 또한, 모듈이 상호 작용하게 됨에 따라서, 이들 상호 작용과 관련된 로그 항목은 서로 다른 로그 파일에 기록될 수 있다. 따라서 로그 파일 내의 관련 정보를 체계적으로 식별하고, 분류하고, 또한 표시하기 위한 툴이 유용할 수 있다.
도 12는 예시적인 일 실시예에 따른 로그 파일(1210)을 생성하는 모듈(415, 405, 1215)의 블록 다이아그램이며, 로그 파일은 로그 파서(1215)에 의해서 데이터베이스(1220) 내로 파싱되고, 클라이언트(1230)에 의해서 질의된다. 로그 파일 분석 툴은, 2 단계로 동작할 수 있는데, 제 1 단계는 파싱 단계로 참조되고, 또한 제 2 단계는 질의 단계로 참조된다. 이들 단계는 이후에 반복될 수 있다. 일 실시예에 있어서, 하나 이상의 로그 파일(12010)은, 예컨대, T-컨트롤러(415), 세션 컨트롤러(405), 및 SIP 프록시(1210)에 의해서, 실행 중에 기입된다. 로그 파일은 또한 통계 서버(322), 라우팅 서버(320), 또는 ICON(120)을 포함하는 다른 유형의 모듈에 의해서도 기입될 수 있다. 분석의 시작시에, 관심이 가는 로그 파일을 컴퓨터에서 액세스 가능한 하나의 디렉토리, 또는 폴더에 넣는다. 파싱 단계에 있어서, 하나 이상의 로그 파일은 로그 파서(1215)에 의해서 판독되며, 또한 그 내용은 데이터베이스(1220)의 테이블에 기입된다. 데이터베이스(1220)는 각각의 쓰레드에 대해서 전용 테이블을 포함하고 있을 수 있다. 기본 필드(basic field)로 참조되는 일부 필드는 데이터베이스(1220)의 각각의 테이블에 표시될 수 있으며, 다른 필드는 일부 테이블에 표시될 수 있고 또한 일부 쓰레드에 대해서는 의미가 없는 값을 가지지 않을 수 있다. 기본 필드의 예로는 각각의 로그 항목에 대한 타임 스탬프, 로그 파일 내의 각각의 로그 항목의 위미, 및 로그 파일의 파일명을 포함할 수 있다.
기타 기본 필드는, T-Lib 메시지에 대해서는, DN 숫자 및 접속에 대한 접속 ID, 고유 식별자, 및, SIP 메시지에 대해서는, 호출 ID, CSeq, 메시지 유형, URI로, URI로부터, Via, RI (최상단), Via branch, URI 요청, 목적지 IP, 목적지 포트, 소스 IP, 및 소스 포트와 같은 본 발명이 속하는 기술 분야에서 통상의 기술을 가진 자에게 공지된 명칭에 의해서 식별되는 필드를 포함할 수 있다.
예시적인 일 실시예에 있어서, 각각의 쓰레드는 일정 동작을 취할 것으로 기대되는 수신 쓰레드에 반응하여 다른 쓰레드로 이벤트 또는 메시지를 전송하는 트리거(trigger)로 알려진 로그 항목을 기록하도록 구성된다. 트리거는 메시지 또는 이벤트의 일부로서 전송되는 고유 식별자를 포함하고 있다. 수신 쓰레드는, 이후에, 그 로그 파일에, 처리를 시작할 때, 예컨대, 메시지 또는 이벤트에 반응하는 핸들러(handler), 및 메시지 또는 이벤트의 처리를 완료할 때의 다른 핸들러로 알려진 로그 항목을 기록한다. 각각의 핸들러 로그 항목은 트리거 로그 항목 내에 존재하는 동일한 고유 식별자를 포함하고 있으며, 또한 두 개의 핸들러는 메시지 또는 이벤트의 처리 중에 이루어지는 로그 항목에 대해서 수신 쓰레드의 로그 파일에서 시작 경계와 종료 경계를 제공하고 있다. 트리거 또는 핸들러 메시지 중에 존재하는 고유 식별자는 또한 트리거 또는 핸들러를 기록할 수 있는 쓰레드에 대한 임의의 데이터베이스 테이블 내의 기본 필드이다.
예를 들면, 분석 세션에 있어서, 시간 간격을 두고 생성된 로그 파일은 하나의 디렉토리에 수집될 수 있다. 이들 로그 파일은 SIP 서버(318)에 의해서 생성된 파일, 예컨대 SIP 서버의 인스턴스에서 실행된 각각의 쓰레드에 대한 하나의 로그 파일, 라우팅 서버(320)에 대한 로그 파일, 통계 서버(322)에 대한 로그 파일, SIP 프록시(346)에 대한 로그 파일, 및 부가 기능 서버(425)에 대한 로그 파일을 포함하고 있을 수 있다. 분석가는, 세션 컨트롤러(405)에서 실행되고, 또한 SIP 서버 프로세스의 일부인TServer라고 명명된 쓰레드와 같은 특정 쓰레드와 관련된 활동만 검토하기를 원할 수 있다. 분석가는 로그 파서를 실행시켜서, TServer 쓰레드에 대응하는 로그 파일을 선택할 수 있으며, 또한 로그 파서는 각각의 항목을 데이터베이스 내로 복사하도록 구성되어, 각각의 항목을 파싱하여 기본 필드와 같은 흥미있는 필드, 및 이 유형의 로그 파일에 대해서 파서에 의해서 식별되는 다른 필드를 추출할 수 있다.
프론트 엔드(front end)로 참조될 수 있는 클라이언트를 사용하여 데이터베이스를 질의하는 단계에 있어서, 분석가는, 이후에, 예를 들면, 특정한 호출 전화 번호, 예컨대, 접속 문제가 보고된 전화 번호와 관련된 거래를 요청하는 질의를 수행할 수 있다. 프론트 엔드는 사용자로부터 마우스 클릭과 같은 입력을 수신하고, 또한 그 결과를 사용자에게 표시하기 위한 사용자 인터페이스를 포함하고 있을 수 있다. 질의는 이 전화 번호로부터의 호(call)가 TServer 쓰레드에 의해서 수신되었지만, 이 호는 답변되지 않았다는, 예컨대 이 호가 SIP 서버층에서의 거래를 촉발(trigger)하기는 하였지만 아무 결과도 촉발되지 않았다는 것을 밝힐 수 있다.
세션 컨트롤러(405)는, TServer 쓰레드 및 콜 매니저 쓰레드의 두 개의 쓰레드를 포함하고 있을 수 있으며, 후자는 SIP 메시징을 담당하고 있을 수 있다. 응답하지 않은 호의 원인에 대해서 추가적으로 조사하기 위해서, 분석가는 로그 파서(log parser)를 기동하여 콜 매니저의 쓰레드 로그 파일을 파싱하고, 또한 이들 쓰레드로부터, 예를 들면, 시간 순서대로, T-Lib 메시지 및 SIP 메시지를 모두 표시하도록 질의를 수행할 수 있다. 사용자 인터페이스 모듈은 각각의 질의에 대한 결과를 사용자가 판독 가능한 포맷으로 표시할 수 있다. 로그 파일명 및 로그 파일 내의 각각의 로그 항목의 위치가 데이터베이스(1220) 내의 각 테이블에서는 기본 필드가 되기 때문에, 사용자 인터페이스는 사용자에게, 사용자 인터페이스에 표시되는 데이터 항목을 클릭하는 것에 의해서, 이 데이터 항목이 최초로 추출되는 곳의 로그 파일을 열도록 하고, 또한 로그 파일 내의 대응하는 로그 항목을 강조(highlight)하도록 하는 능력을 제공할 수 있다. 로그 파일명 및 로그 파일 내의 각각의 로그 항목의 위치를 사용하게 되면, 질의는 또한, 예를 들면, 별도의 인접하는 작은 창(pane) 또는 질의 결과 바로 다음 윈도(window)에, 이들 질의의 결과가 유래하는 로그 파일 항목을 표시할 수 있으며, 또한 각각의 이와 같은 로그 파일 항목은 클릭 가능한, 예를 들면, 이를 클릭하게 되면 뷰어(viewr)가 열리도록 하여, 사용자로 하여금 이 항목을 포함하고 있는 로그 파일의 전체 내용을, 예를 들면, 항목이 강조된 채로 볼 수 있도록 한다. 예를 들면, 인접한 작은 창 또는 윈도에 있어서, 프론트 엔드는 시간 순서대로 일련의 로그 파일의 항목을 표시하여, 예컨대, 하나의 모듈로부터의 메시지의 전송에 대응하는 로그 파일 항목을 보여주고, 이어서 다른 로그 파일로부터 다른 모듈에 의한 메시지의 수신에 대응하는 로그 파일 항목을 보여주고, 또한 이어서 메시지를 처리하는 제 2 모듈에 의해서 실행되는 동작에 대응하는 로그 파일 메시지를 보여줄 수 있다.
도 13은 예시적인 일 실시예에 따른, 로그 파일 분석과 관련된 동작을 나타내는 플로 차트이다. 단계(1310)에 있어서, 로그 파일은 시스템 내의 각각의 쓰레드에 의해서 기입되어진다. 단계(1320)에 있어서, 로그 파일의 부분 집합은 로그 파서에 의해서 파싱된다. 단계(1330)에 있어서, 로그 파서는 각각의 로그 파일 항목 내의 흥미있는 각각의 필드의 값을 데이터베이스의 대응하는 테이블 내의 대응하는 필드에 기입한다. 단계(1340)에 있어서, 프론트 엔드는 사용자가 선택한 또는 사용자가 생성한 데이터베이스 질의를 수행하고, 또한, 단계(1350)에 있어서, 사용자 인터페이스는 그 결과를 표시한다. 본 예시에 있어서, 이들 단계는 특정한 순서대로 설명하였지만, 본 발명은 이들 단계가 이 순서대로 발생하는 것으로 제한되지 않으며, 또한 일부 또는 전체 단계는 서로 다른 순서, 또는 병렬적으로 발생할 수도 있다.
V. 발신 통화의 다이얼 플랜(dial plan)
경우에 따라서는, 에이전트가 에이전트 디바이스로부터, 예컨대 콜 센터 내의 다른 에이전트로, 또는 전화를 다시 걸어 달라고 요청한 고객에서 발신 호(outbound call)를 행할 필요가 있을 수 있다. 그와 같은 경우에 있어서, 이 호를 접속하는 프로세스를 지원하도록 부가 기능 서버(425)(도 4)에 의해서 다이얼 플랜이 제공될 수 있다. 도 14는 하나는 뉴욕에 있고 하나는 런던에 있는 두 개의 콜 센터(200)를 포함하고 있을 수 있는 예시적인 지리적으로 분산된 콜 센터를 개략적으로 도시한 다이아그램으로서, 이 콜 센터는 데일리시(Daly City), 멘로 파크(Menlo Park), 뉴욕, 런던, 및 파리에 소재하는 5 개의 에이전트 사이트(210)를 포함하고 있을 수 있다.
도 15는 예시적인 일 실시예에 있어서 다이얼 플랜을 구현하는데 사용될 수 있는, 통화 프로파일, 카테고리, 및 패턴을 도시하고 있다. 에이전트는 다이얼 문자열로 참조될 수 있는 연속된 숫자를 다이얼할 수 있으며, 또한 부가 기능 서버(425)는 일련의 카테고리에 따라서 이를 분류하고, 이들의 각각은 하나 이상의 패턴을 포함할 수 있다. 예를 들면, 제 1 카테고리(1505)는 내선 번호, 예컨대, 콜 센터 내의 종점에 대응하는 전화 번호를 포함하고 있을 수 있으며, 이 전화는 번호는 "XXXXX"와 같은 표기법과 일치하는 기호 패턴으로 표시되는 다섯 자리의 내선 번호를 포함하고 있을 수 있으며, 여기에서 기호 "X"는 임의의 숫자가 일치하도록 구성된 다이얼 문자열에서의 위치를 나타내고 있다. 제 2 카테고리(1510)는 "9 911" 및 "911"의 두 개의 패턴으로 표현되는 비상 전화 번호를 포함하고 있을 수 있다. 제 3 카테고리(1515)는 외부 지역 국 전화 번호를 포함하고 있을 수 있고, 제 4 카테고리(1520)는 외부 시외 지역 번호를 포함하고 있을 수 있고, 제 5 카테고리(1525)는 외부 국제 전화 번호를 포함하고 있을 수 있고, 및 제 6 카테고리(1530) 는 차단된 전화 번호를 포함하고 있을 수 있다. 차단된 전화 번호는, 예를 들면, "900" 지역 번호로 시작하는 전화 번호가 포함되어 있을 수 있으며, 이 전화 번호는 전화를 거는 쪽에 추가 비용이 부과될 수 있다.
발신 호가 행해질 수 있는 각각의 에이전트 디바이스는 하나 이상의 호출 프로파일을 갖도록 구성될 수 있으며, 이들 호출 프로파일의 각각은 사용 가능한, 예컨대 일치시키는데 사용 가능한 카테고리 목록이다. 각각의 카테고리는 일련의 패턴을 포함하고 있을 수 있다. 호출 프로파일을 사용하여 에이전트 디바이스가 발신 통화를 걸 수 있는 능력을 제한할 수 있다. 연속된 숫자가 에이전트 디바이스에서 다이얼되면, 이 연속된, 예컨대 다이얼 문자열은 프로파일 내에 포함되어 있는 각각의 카테고리(예컨대, 각각의 사용 가능한 카테고리)의 각각의 패턴에 대해서 테스트하여 이 다이얼 문자열이 카테고리 내의 임의의 패턴과 일치하는 지를 결정할 수 있다. 다이얼 문자열이 호출 프로파일 내의 카테고리의 임의의 패턴과 일치하지 않는 경우, 또는 차단된 카테고리 내의 임의의 패턴과 일치하는 경우, 호(call)는 거부되며, 또한 에이전트 디바이스는 오류 톤(error tone)을 생성하여 이 호가 거부되었다는 것을 나타낼 수 있다.
예를 들면, 시내 통화 프로파일로서 참조될 수 있는 제 1 호출 프로파일(1535)은 제 1 카테고리(1505), 제 2 카테고리(1510), 및 제 3 카테고리(1515)를 포함하고 있을 수 있다. 예를 들면, 제 1 호출 프로파일을 갖도록 구성된 에이전트 디바이스로부터의 임의의 호 시도(call attempt)는 다이얼 문자열이, 예컨대 내선 호출, 비상 전화 번호에 대한 호, 또는 외부 시내 전화에 대한 호가 아니라면, 제 1 카테고리, 제 2 카테고리, 또는 제 3 카테고리 내의 패턴과 일치하지 않으면 거부될 것이다. 이 경우에 있어서, 차단된 "900" 전화 번호에 대한 패턴을 포함하고 있는 제 6 카테고리의 삽입 또는 배제는 "9-1-900"으로 시작하는 전화 번호 및 이어지는 7 개의 다른 숫자는 호출 프로파일의 카테고리 중의 임의의 패턴과 어떠한 경우에라도 일치하기 않기 때문에 아무런 영향이 없을 수 있다. 제 2 호출 프로파일(1540)은 제 1 카테고리(1505), 제 2 카테고리(1510), 제 3 카테고리(1515), 제 4 카테고리(1520), 및 제 6 카테고리(1530)를 포함하고 있을 수 있으며, 따라서 제 2 호출 프로파일(1540)을 갖도록 구성된 에이전트 디바이스는 내선 전화 번호, 비상 전화 번호, 외부 지역 국 전화 번호, 및 외부 국내 전화에 대한 호를 개시할 수 있다. 국제 전화는 불가능할 수 있는데, 이는 국제 전화 번호를 다이얼하려고 시도하게 되면 이 다이얼 문자열이 호출 프로파일과 관련된 카테고리 내의 임의의 패턴과 일치하지 않기 때문이며, 또한 "900" 전화 번호를 다이얼하려고 하는 시도는 차단된 제 6 카테고리(1530)와 일치하기 때문에 실패할 수 있다. 통화 프로파일 정의는 서로 다른 에이전트 사이트(210)에 대해서 서로 다를 수 있으며, 따라서, 예를 들면, 데일리시의 에이전트 사이트(210)에 대한 지역 통화 프로파일의 정의는 멘로 파크의 에이전트 사이트(210)에서의 지역 통화 프로파일의 정의와 다를 수 있다. 카테고리의 정의도 유사하게 서로 다른 에이전트 사이트(210)에 대해서 서로 다를 수 있다.
다이얼 문자열이 하나 이상의 카테고리와 일치하게 되면, 가중치(weight)라고 참조할 수도 있는 랭크(rank)를 사용하여 다이얼 문자열과 가장 잘 일치하는 카테고리 및 패턴을 식별할 수 있다. 예시적인 일 실시예에 있어서, 가중치는 다음과 같이 계산된다. 먼저, 적어도 예상되는 가장 긴 다이얼 문자열의 길이인 최대 다이얼 문자열의 길이를 선택한다. 가중치는 초기에 이 최대 다이얼 문자열 길에 10을 곱하도록 설정된다. 이후에, 패턴 내의 각각의 숫자 요소에 대해서, 가중치는 가능한 10("0"에서 "9"의 범위 내)으로부터 숫자의 자릿수만큼 감소하게 되어 해당 숫자 요소와 일치하게 된다. 여기에서, 숫자의 자릿수는 다이얼 문자열 중의 하나의 숫자에 대응하는 패턴의 요소이며, 이 요소는 그 숫자에 대한 가능한 값의 범위 내에서 일치하고 있다. 예를 들면, 문자 "X"가 임의의 숫자와 일치한다는 일 표기법에 있어서, "Z"는 "0"을 제외한 임의의 숫자와 일치하며, 또한 범위는 모난 괄호 내에 한정되어, "[2-9]"는 "2" 및 "9" 사이의 임의의 숫자와 일치하게 된다. 이 알고리즘 및 최대 다이얼 문자열 길이 100을 사용하면, "9 [2-9]XX XXXX"와 같은 패턴은 초기 가중치 1000 (예컨대, 100 x 10)을 가지게 되며, 이후에 (하나의 숫자와 일치하는 최초 "9"에 대해서) 1 만큼 감소하고, 이어서 (여덟 가지의 가능한 숫자와 일치하는 숫자 요소 "[2-9]"에 대해서) 8 만큼, 및 이어서 (각각 열 개의 가능한 숫자와 일치하는 여섯 개의 "X" 숫자 요소에 대해서) 60 만큼 감소하게 되어, 최종적으로 가중치 931을 얻는다. 일 표기법에 있어서, 문자 "*"는 임의의 값을 갖는 임의의 숫자와 일치할 수 있으며, 따라서 예를 들면 "9*"는 숫자 "9"로 시작하는 임의의 다이얼 문자열과 일치하게 된다. 이 패턴의 가중치는 다이얼 문자열이 최대 길이를 가지고 있다고 가정하여 계산될 수 있으며, 따라서 최대 다이얼 문자열의 길이 100에 대해서 가중치는 9이다. 이 경우에 있어서, 가중치는 초기 가중치 1000(예컨대, 100 x 10)으로부터 시작하여, (초기 문자 "9"에 대해서) 1 만큼 감소하고 또한 (남아 있는 99 개의 "*" 문자에 대해서, 각각은 10 개의 가능한 숫자와 일치함) 990 만큼 감소한다. 여기에서 임의의 패턴에 대한 가중치를 계산하기 위한 구체적인 예시의 알고리즘에 대해서 설명하였지만, 본 발명은 이에 한정되지 않고, 또한 다른 알고리즘을 사용하여 패턴의 가중치를 계산할 수도 있다. 일 실시예에 있어서, 패턴의 가중치는 패턴 및 다이얼 문자열을 모두 입력으로 취하는 알고리즘을 사용하여 결정될 수 있다.
다이얼 문자열이 하나 이상의 카테고리와 일치하게 되고 또한 최적 일치 카테고리, 예컨대 가장 높은 가중치, 또는 차단 카테고리를 갖는 카테고리가 식별되면, 다이얼 문자열은, 호 전환 정보 및 종점 식별자의 모두를 포함할 수 있는 변환된 문자열로 변환된다. 예를 들면, 다이얼 문자열은 외부 국내 전화 번호인 경우, 호는 인터넷 프로토콜(IP) 네트워크 내에서 목적지를 향해서 게이트웨이(312)를 통해서 PSTN 네트워크까지 가서, 이곳에서 목적지 전화 번호로 전환될 수 있다. PSTN 사업자는 PSTN 네트워크의 사용에 과금할 수 있으며, 과금, 예컨대, 콜 센터 조작자에 대한 비용은, 하루 중 시간, 요일, 게이트웨이의 위치, 목적지 전화 번호를 포함하는 복수의 인자에 의해서 바뀔 수 있다. 서로 다른 게이트웨이(312)는 서로 다른 PSTN 사업자에 의해서 서비스될 수 있으며, 또한 몇 개의 PSTN 사업자가 하나의 게이트웨이(312)에서 사용 가능할 수도 있다. 통화 비용에 영향을 미칠 수 있는 하루 중 시간은 게이트웨이가 위치한 시간대에 따라서 바뀔 수 있다.
예시적인 일 실시예에 있어서, 부가 기능 서버(425)(도 4)는, 예를 들면, 게이트웨이(312)가 동작 가능한지 및 그 예비 용량을 포함하는, 일련의 게이트웨이(312)의 상태 정보를 유지하고 있다. 콜 센터에 대해서 외부의 종점을 갖는 다이얼 문자열의 변환시에, 부가 기능 서버(425)는 먼저 사용 가능한, 예컨대 동작 가능하고 또한 추가적인 호를 처리할 수 있는 용량을 가진 게이트웨이(312)를 식별하고, 이후에 게이트웨이에서 사용 가능한 사업자, 하루중 시간, 요일, 게이트웨이(312)가 위치한 시간대, 및 게이트웨이(312)로부터 목적지 전화 번호의 위치까지의 거리와 같은 임의의 기타 요인을 감안하여 각각의 사용 가능한 게이트웨이로부터 호를 전환하는데 사용되는 추정 비용을 계산한다. 부가 기능 서버(425)는 이후에 가장 낮은 비용 옵션을 선택하고, 또한 이에 따라서 전화 번호를 변환한다.
변환 프로세스의 출력은 목적지 전화 번호에 대한 식별자, 예컨대 E.164 방식 전화 번호, 및 PSTN으로 전환을 식별하는 기타 문자를 포함할 수 있는 변환된 전화 번호로서 참조되는 문자열일 수 있다. 예를 들면, 부가 기능 서버(425)가 문자열 "NY1"에 의해서 식별되는 뉴욕 게이트웨이를 통해서 호를 전환하는 것이 최적이라고 판단하게 되면, "212 555 1234"와 같은 다이얼 문자열로부터 "NY1 212 555 1234"의 변환된 전화 번호를 형성할 수 있다.
본 명세서에서, SIP 클러스터의 예시적인 실시예에 대해서 구체적으로 설명되고 도시되었지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게는 다양한 변경 및 변형이 가능하다는 것을 잘 알 것이다. 따라서, 본 발명의 원칙에 따라서 구축된 SIP 클러스터는 본 명세서에서 구체적으로 설명한 것과 다르게 구현될 수 있음을 이해하여야 한다. 예를 들면, 본 발명은 콜 센터 내에서 사용되는 것으로 제한될 필요가 없으며, 다른 목적으로 사용되는 기업 통신 시스템과 같은 다른 애플리케이션에서의 장점을 제공할 수 있다. 본 발명은 또한 이하의 특허청구범위, 및 그의 균등물에 의해서 한정되어진다.

Claims (35)

  1. 분산형 이벤트 전달 방법에 있어서,
    제 1 컴퓨팅 디바이스 상에서 실행되는 제 1 모듈에 의해서, 콜 센터 리소스 디바이스에 대한 이벤트를 생성하는 단계;
    상기 제 1 모듈에 의해서, 상기 콜 센터 리소스 디바이스에 대한 리소스 식별자(ID)를 식별하는 단계;
    상기 제 1 모듈에 의해서, 상기 콜 센터 리소스 디바이스를 담당하는 제 2 모듈을 식별하는 단계;를 포함하며,
    상기 제 2 모듈을 식별하는 단계는,
    상기 리소스 ID를 상기 제 1 모듈에 의해 호출된 함수에 제공하는 단계;
    상기 함수로부터의 출력으로서 상기 제 2 모듈에 대한 모듈 식별자(ID)를 수신하는 단계; 및
    상기 식별된 모듈 ID에 기초하여 상기 제 2 모듈로 상기 이벤트를 상기 제 1 모듈에 의해서 전송하는 단계를 포함하고 있는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  2. 제 1 항에 있어서,
    상기 리소스 ID에 의해서 식별된 리소스로 상기 이벤트를 전달하는 단계 - 여기에서 상기 리소스는 상기 이벤트에 반응하여 출력을 생성함 -;를 더 포함하고 있는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  3. 제 2 항에 있어서,
    상기 이벤트는 벨 소리 이벤트인 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  4. 제 3 항에 있어서,
    상기 리소스에 의해서, 상기 벨 소리 이벤트를 수신하는 단계; 및
    상기 리소스에 의해서, 벨 소리 경고를 생성하는 단계;를 더 포함하는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  5. 제 2 항에 있어서,
    호(call)를 상기 리소스 ID와 관련된 에이전트 디바이스로 전환하는 단계를 더 포함하고 있는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  6. 제 2 항에 있어서,
    상기 이벤트는 스크린 팝 이벤트인 것을 특징으로 하는 분산형 이벤트 전달 방법.
  7. 제 6 항에 있어서,
    상기 리소스에 의해서, 상기 스크린 팝 이벤트를 수신하는 단계; 및
    상기 리소스에 의해서 스크린 팝을 생성하는 단계;를 더 포함하고 있는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  8. 제 1 항에 있어서,
    상기 함수는 해시 함수인 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  9. 제 8 항에 있어서,
    상기 해시 함수는 지속적 해시 함수인 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  10. 제 9 항에 있어서,
    상기 해시 함수는,
    리소스 식별자를 일정 범위 내로 매핑하도록 구성된 제 1 기본 해시 함수; 및
    모듈 식별자를 일정 범위 내로 매핑하도록 구성된 제 2 기본 해시 함수를 포함하고 있는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  11. 제 10 항에 있어서,
    상기 제 2 기본 해시 함수는 또한 각각의 모듈 식별자의 복사본을 상기 일정 범위 내로 매핑하도록 구성되는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  12. 제 8 항에 있어서,
    상기 해시 함수는 지리적 지역 내의 리소스에 대응하는 리소스 식별자를 상기 지리적 지역 내의 컴퓨팅 디바이스 상에서 실행되는 모듈에 대응하는 모듈 식별자로 매핑하도록 구성되어 있는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법에 있어서,
    제 1 컴퓨팅 디바이스 상에서 실행되는 제 1 모듈에 의해서, 전화 번호의 제1 세트를 포함하는 에이전트 리소스의 제1 세트에 라우팅되는 제 1 상호작용을 수신하되, 상기 제 1 모듈은 상기 에이전트 리소스의 제1 세트에 대한 상태 정보를 유지하는 단계;
    상기 제 1 모듈에 의해서, 상기 제 1 상호작용을 라우팅하기 위한 제1 요청을 전송하는 단계;
    상기 제1 요청에 응답하여 상기 제 1 모듈에 의해서, 상기 제 1 상호작용이 라우팅되는 제1 목적지 전화 번호의 제 1 리소스 식별자를 수신하되, 상기 제1 목적지 전화 번호는 상기 제1 목적지 전화 번호와 다른 제2 목적지 전화 번호를 포함하는 리소스의 제2 세트에서 선택되고, 제 2 모듈은 상기 리소스의 제2 세트에 대한 상태 정보를 유지하는 단계;
    상기 제 1 모듈에 의해서, 상기 제 2 모듈의 모듈 식별자를 상기 제1 목적지 전화 번호를 위한 상기 제 1 리소스 식별자의 함수로서 결정하는 단계;
    상기 제 1 모듈에 의해서, 상기 제1 목적지 전화 번호를 위한 제2 요청을 상기 제2 모듈로 전송하는 단계;
    상기 에이전트 리소스의 제2 세트를 위해 유지되는 상기 상태 정보에 기초하여, 상기 제2 모듈에 의해서, 상기 제2 요청을 허가할 지를 결정하는 단계;
    상기 제2 요청을 허가하는 상기 제2 모듈에 응답하여, 상기 제 1 모듈에 의해서 상기 제1 목적지 전화 번호로 상기 제 1 상호작용을 라우팅하는 단계;
    게이트웨이 디바이스를 통해, 상기 제1 목적지 전화 번호와 관련된 제1 에이전트 디바이스와의 연결을 설정하되, 실시간 미디어가 상기 연결을 통해 교환되는 단계;
    상기 제 1 모듈에 의해서, 라우팅되는 제 2 상호작용을 수신하는 단계;
    상기 제 1 모듈에 의해서, 상기 제 2 상호작용을 라우팅하기 위한 제3 요청을 전송하는 단계;
    상기 제3 요청에 응답하여 상기 제 1 모듈에 의해서, 상기 제 2 상호작용이 라우팅되는 제2 목적지 전화 번호의 제 2 리소스 식별자를 수신하되, 상기 제 2 리소스 식별자 및 상기 제2 목적지 전화 번호는 각각 상기 제 1 리소스 식별자 및 상기 제1 목적지 전화 번호와 다르고, 상기 제2 목적지 전화 번호는 상기 제2 목적지 전화 번호를 포함하는 상기 리소스의 제2 세트에서 선택되는 단계;
    상기 제 1 모듈에 의해서, 상기 제 2 모듈의 상기 모듈 식별자를 상기 제2 목적지 전화 번호를 위한 상기 제 1 리소스 식별자의 함수로서 결정하는 단계;
    상기 제 1 모듈에 의해서, 상기 제2 목적지 전화 번호를 위한 제4 요청을 상기 제2 모듈로 전송하는 단계;
    상기 에이전트 리소스의 제2 세트를 위해 유지되는 상기 상태 정보에 기초하여, 상기 제2 모듈에 의해서, 상기 제4 요청을 허가할 지를 결정하는 단계;
    상기 제4 요청을 허가하는 상기 제2 모듈에 응답하여, 상기 제 1 모듈에 의해서 상기 제2 목적지 전화 번호로 상기 제 2 상호작용을 라우팅하는 단계; 및
    게이트웨이 디바이스를 통해, 상기 제2 목적지 전화 번호와 관련된 제2 에이전트 디바이스와의 연결을 설정하되, 실시간 미디어가 상기 연결을 통해 교환되는 단계;를 포함하고 있는 것을 특징으로 하는, 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
  21. 삭제
  22. 제 20 항에 있어서,
    상기 제 2 모듈에 의해서, 상기 리소스에 대한 상기 요청을 허가할 지를 결정하는 상기 단계는,
    일정 시간 간격 동안 상기 리소스에 대한 제 2 요청을 수신하는 단계;
    상기 제 2 요청과 관련된 상기 요청의 우선 순위를 평가하는 단계; 및
    상기 평가된 우선 순위에 기초하여 상기 요청 또는 상기 제 2 요청을 허가하는 단계;를 포함하고 있는 것을 특징으로 하는, 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
  23. 제 22 항에 있어서,
    상기 우선 순위의 상기 평가 단계는 상기 제 2 요청의 복수의 기준에 대한 상기 요청의 복수의 기준을 평가하는 단계를 포함하고 있으며, 이때 기준은 발신인의 가치, 상호작용에 대한 에이전트 리소스의 적절성, 상기 호에 대한 에이전트 기타 리소스의 적절성, 대기 시간, 및 이들의 조합으로 이루어지는 그룹으로부터 선택되는 것을 특징으로 하는, 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
  24. 삭제
  25. 삭제
  26. 삭제
  27. 제 20 항에 있어서,
    상기 제 2 모듈은 상기 리소스와 관련된 상태 정보를 유지하는 것을 담당하는 것을 특징으로 하는, 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
  28. 제 20 항에 있어서,
    상기 함수는 해시 함수인 것을 특징으로 하는, 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
  29. 제 28 항에 있어서,
    상기 해시 함수는 지속적 해시 함수인 것을 특징으로 하는, 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
  30. 제 29 항에 있어서,
    상기 해시 함수는,
    리소스 식별자를 일정 범위 내로 매핑하도록 구성된 제 1 기본 해시 함수; 및
    모듈 식별자를 일정 범위 내로 매핑하도록 구성된 제 2 기본 해시 함수를 포함하고 있는 것을 특징으로 하는, 콜분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
  31. 제 30 항에 있어서,
    상기 제 2 기본 해시 함수는 또한 각각의 모듈 식별자의 복사본을 상기 일정 범위 내로 매핑하도록 구성되는 것을 특징으로 하는, 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
  32. 제 28 항에 있어서,
    상기 해시 함수는 지리적 지역 내의 전화 번호에 대응하는 리소스 식별자를 상기 지리적 지역 내의 컴퓨팅 디바이스 상에서 실행되는 모듈에 대응하는 모듈 식별자로 매핑하도록 구성되어 있는 것을 특징으로 하는, 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
  33. 제 1 항에 있어서,
    상기 제2 모듈은
    제2 컴퓨팅 디바이스 상에서 실행되는 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  34. 제 33 항에 있어서,
    상기 제2 컴퓨팅 디바이스는
    상기 제1 컴퓨팅 디바이스와 동일한 디바이스인 것을 특징으로 하는, 분산형 이벤트 전달 방법.
  35. 제 20 항에 있어서,
    상기 제2 모듈은
    상기 에이전트 리소스에서 분리된 서버에서 운용되는 것을 특징으로 하는, 분산형 콜 센터 시스템 내의 분산형 에이전트 리소스를 예약하기 위한 방법.
KR1020177029753A 2012-12-04 2013-12-04 분산형 이벤트 전달 방법 KR101959161B1 (ko)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US201261733408P 2012-12-04 2012-12-04
US61/733,408 2012-12-04
US13/843,951 2013-03-15
US13/844,027 2013-03-15
US13/844,027 US10382249B2 (en) 2012-12-04 2013-03-15 Logging in multithreaded application
US13/844,099 2013-03-15
US13/843,951 US8837700B2 (en) 2012-12-04 2013-03-15 Dialed string matching and call cost minimization in dial plan
US13/844,190 US10181974B2 (en) 2012-12-04 2013-03-15 Distributed agent reservation in SIP cluster
US13/844,159 US9344569B2 (en) 2012-12-04 2013-03-15 System and method for addition and removal of servers in server cluster
US13/844,190 2013-03-15
US13/844,159 2013-03-15
US13/844,099 US8879718B2 (en) 2012-12-04 2013-03-15 Distributed event delivery
PCT/US2013/073196 WO2014089246A1 (en) 2012-12-04 2013-12-04 System and method for addition and removal of servers in server cluster

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157018093A Division KR101789393B1 (ko) 2012-12-04 2013-12-04 서버 클러스터에 서버를 추가 및 제거하기 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20170119726A KR20170119726A (ko) 2017-10-27
KR101959161B1 true KR101959161B1 (ko) 2019-03-15

Family

ID=50825463

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157018093A KR101789393B1 (ko) 2012-12-04 2013-12-04 서버 클러스터에 서버를 추가 및 제거하기 위한 시스템 및 방법
KR1020177029753A KR101959161B1 (ko) 2012-12-04 2013-12-04 분산형 이벤트 전달 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020157018093A KR101789393B1 (ko) 2012-12-04 2013-12-04 서버 클러스터에 서버를 추가 및 제거하기 위한 시스템 및 방법

Country Status (5)

Country Link
US (9) US10382249B2 (ko)
EP (1) EP2929448B1 (ko)
KR (2) KR101789393B1 (ko)
CN (1) CN104981794A (ko)
WO (1) WO2014089246A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8232962B2 (en) 2004-06-21 2012-07-31 Trading Technologies International, Inc. System and method for display management based on user attention inputs
GB0622551D0 (en) 2006-11-11 2006-12-20 Ibm A method, apparatus and computer program for a first device to determine the status of a second device
US7844726B2 (en) * 2008-07-28 2010-11-30 Trading Technologies International, Inc. System and method for dynamically managing message flow
US10382249B2 (en) 2012-12-04 2019-08-13 Genesys Telecomminucations Laboratories, Inc. Logging in multithreaded application
US10467691B2 (en) 2012-12-31 2019-11-05 Trading Technologies International, Inc. User definable prioritization of market information
US10460387B2 (en) 2013-12-18 2019-10-29 Trading Technologies International, Inc. Dynamic information configuration and display
US9742916B1 (en) * 2013-12-19 2017-08-22 Amazon Technologies, Inc. Customer service agent to customer connection
US9515995B2 (en) * 2013-12-27 2016-12-06 Futurewei Technologies, Inc. Method and apparatus for network address translation and firewall traversal
US9774681B2 (en) * 2014-10-03 2017-09-26 Fair Isaac Corporation Cloud process for rapid data investigation and data integrity analysis
US9654623B1 (en) * 2015-03-02 2017-05-16 Amazon Technologies, Inc. Data aggregation service
US9781026B2 (en) * 2015-05-20 2017-10-03 Avaya Inc. System and method to prevent polling overload for detection of presence information
US10296661B2 (en) * 2015-09-11 2019-05-21 Salesforce.Com, Inc. Processing log files using a database system
US10243854B2 (en) 2015-12-09 2019-03-26 International Business Machines Corporation Persistent connection rebalancing
CN107231399B (zh) 2016-03-25 2020-11-06 阿里巴巴集团控股有限公司 高可用服务器集群的扩容方法以及装置
CN108462682A (zh) * 2017-02-22 2018-08-28 成都鼎桥通信技术有限公司 初始对话协议sip消息的分发方法和装置
US11381482B2 (en) * 2017-07-10 2022-07-05 Verint Americas Inc. System and method for logging and displaying routing of communication
CN108259552B (zh) * 2017-07-24 2020-09-11 平安科技(深圳)有限公司 案件处理系统和方法
US10749900B2 (en) 2018-09-28 2020-08-18 The Mitre Corporation Deploying session initiation protocol application network security
WO2023039341A1 (en) * 2021-09-08 2023-03-16 Level 3 Communications, Llc Systems and methods for configuration of sequence handlers
CN114143196B (zh) * 2021-11-25 2023-07-28 北京百度网讯科技有限公司 实例配置更新方法、装置、设备、存储介质及程序产品

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937051A (en) 1993-07-08 1999-08-10 Teknekron Infoswitch Corporation Method and system for transferring calls and call-related data between a plurality of call centers
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6363411B1 (en) * 1998-08-05 2002-03-26 Mci Worldcom, Inc. Intelligent network
US6449356B1 (en) 1998-05-26 2002-09-10 Rockwell Semiconductor Systems, Inc. Method of multi-media transaction processing
US7457279B1 (en) 1999-09-10 2008-11-25 Vertical Communications Acquisition Corp. Method, system, and computer program product for managing routing servers and services
US7701925B1 (en) 2000-03-22 2010-04-20 Tekelec Presence registration and routing node
US6816905B1 (en) 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
US7035248B2 (en) 2000-08-10 2006-04-25 Alcatel Switch with emulation client
DE60133026T2 (de) 2000-08-28 2009-02-19 Cognitens Ltd. Genaues ausrichten von bildern in digitalen abbildungssystemen durch anpassen von punkten in den bildern
AU2001283154A1 (en) 2000-08-30 2002-03-13 Bbnt Solutions Llc Routing toll-free telecommunications traffic over data networks
US6674852B1 (en) 2000-08-31 2004-01-06 Cisco Technology, Inc. Call management implemented using call routing engine
JP2004515940A (ja) 2000-10-23 2004-05-27 スティーブン・ダブリュ.・スタットハム コールセンタに関連したデータの検索
US7801953B1 (en) 2001-02-12 2010-09-21 Nortel Networks Limited Push-to-talk wireless telecommunications system utilizing an voice-over-IP network
GB2389692B (en) 2001-02-20 2005-06-29 Cytokinetics Inc Method and apparatus for automated cellular bioinformatics
EP1248431B1 (en) 2001-03-27 2007-10-31 Sony Deutschland GmbH Method for achieving end-to-end quality of service negotiation for distributed multimedia applications
US6704406B1 (en) * 2001-05-29 2004-03-09 Cisco Technology, Inc. Automated route plan generation
US6647112B2 (en) 2001-12-28 2003-11-11 Charles L. Smith One-number global-services international numbering plan
US7403996B2 (en) 2002-02-21 2008-07-22 Bea Systems, Inc. Systems and methods for migratable services
US6947542B2 (en) 2002-02-28 2005-09-20 Siemens Communications, Inc. Carrier identification codes (CIC) transport
US7379990B2 (en) 2002-08-12 2008-05-27 Tsao Sheng Ted Tai Distributed virtual SAN
CN1221898C (zh) * 2002-08-13 2005-10-05 国际商业机器公司 刷新网络代理高速缓存服务器对象的系统和方法
GB2394141B (en) 2002-10-11 2005-10-19 Active Agent Technologies Ltd Telephony method, system and application for barring personal calls outside a local telephony system
JP2006519441A (ja) 2003-02-24 2006-08-24 ビーイーエイ システムズ, インコーポレイテッド サーバロードバランシング及びサーバアフィニティのためのシステム及び方法
US20050021688A1 (en) 2003-02-25 2005-01-27 David Felts System and method for domain configuration
US7143170B2 (en) 2003-04-30 2006-11-28 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
US20050015471A1 (en) 2003-07-18 2005-01-20 Zhang Pu Paul Secure cluster configuration data set transfer protocol
US7389510B2 (en) 2003-11-06 2008-06-17 International Business Machines Corporation Load balancing of servers in a cluster
US7584500B2 (en) * 2003-11-19 2009-09-01 Hughes Network Systems, Llc Pre-fetching secure content using proxy architecture
US8234256B2 (en) * 2003-11-26 2012-07-31 Loglogic, Inc. System and method for parsing, summarizing and reporting log data
US20060026179A1 (en) * 2003-12-08 2006-02-02 Brown Douglas P Workload group trend analysis in a database system
GB2412754B (en) 2004-03-30 2007-07-11 Hewlett Packard Development Co Provision of resource allocation information
US7590669B2 (en) 2004-04-06 2009-09-15 Microsoft Corporation Managing client configuration data
US20060112170A1 (en) * 2004-05-03 2006-05-25 Craig Sirkin Geo-locating load balancing
US7590620B1 (en) 2004-06-18 2009-09-15 Google Inc. System and method for analyzing data records
EP1849259B1 (en) 2004-11-05 2014-12-17 Kabushiki Kaisha Toshiba Network discovery mechanisms
US7680481B2 (en) 2005-03-07 2010-03-16 Alcatel-Lucent Usa Inc. Method and apparatus for linking charging records
KR20060028373A (ko) 2005-05-10 2006-03-29 강상우 문자를 이용한 통화연결 방법 및 장치
US8548156B2 (en) 2005-07-01 2013-10-01 Cisco Technology, Inc. Method and system for blocking lower priority communications for improved automatic call distribution
ITMI20051742A1 (it) 2005-09-20 2007-03-21 Accenture Global Services Gmbh Architettura di autenticazione ed autorizzazione per una porta di accesso
US7447940B2 (en) 2005-11-15 2008-11-04 Bea Systems, Inc. System and method for providing singleton services in a cluster
US20070112963A1 (en) 2005-11-17 2007-05-17 International Business Machines Corporation Sending routing data based on times that servers joined a cluster
US20070168537A1 (en) 2006-01-18 2007-07-19 Archan Misra Method for intelligent and automated transmission of local context in converged signaling
US7596615B2 (en) 2006-02-22 2009-09-29 Microsoft Corporation Multi-server automated redundant service configuration
WO2007104330A1 (en) 2006-03-15 2007-09-20 Freescale Semiconductor, Inc. Task scheduling method and apparatus
US7536581B2 (en) 2006-05-16 2009-05-19 Bea Systems, Inc. Automatic migratable services
JP5016063B2 (ja) * 2007-02-22 2012-09-05 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 整合性のとれた耐障害性分散ハッシュテーブル(dht)オーバレイネットワーク
US8169968B1 (en) 2007-05-10 2012-05-01 Rockstar Consortium Reducing communication silence when performing inter-technology handoff
US20080298253A1 (en) 2007-05-30 2008-12-04 Nortel Networks Limited Managing Recordings of Communications Sessions
US20100223326A1 (en) * 2007-06-22 2010-09-02 Rogier Noldus Method of Providing a Service through a User Equipment Unit in a an IP Multimedia Sub-System Telecommunications Network, Including a User Database Server, Service Policy Server and Application Server for use with Said Method
US8055735B2 (en) * 2007-10-30 2011-11-08 Hewlett-Packard Development Company, L.P. Method and system for forming a cluster of networked nodes
US20090111472A1 (en) * 2007-10-31 2009-04-30 Motorola, Inc. Method and system for providing a seamless handoff between communication networks
US8892689B1 (en) * 2008-04-30 2014-11-18 Netapp, Inc. Method and apparatus for a storage server to automatically discover and join a network storage cluster
US8126836B2 (en) * 2008-06-06 2012-02-28 Motorola Mobility, Inc. Call group management using the session initiation protocol
US8243913B2 (en) 2008-08-29 2012-08-14 8×8, Inc. Limiting contact in a networked contact center environment
US7979514B2 (en) 2008-10-27 2011-07-12 At&T Mobility Ii, Llc Method and system for application provisioning
JP4772854B2 (ja) 2008-12-02 2011-09-14 株式会社日立製作所 計算機システムの構成管理方法、計算機システム及び構成管理プログラム
US10944868B2 (en) 2009-07-10 2021-03-09 Avaya Inc. Contact center interfaces
US8438574B1 (en) 2009-08-14 2013-05-07 Translattice, Inc. Generating monotone hash preferences
US8150430B2 (en) 2009-10-02 2012-04-03 At&T Mobility Ii Llc Communications device media delivery
US20120203864A1 (en) 2009-10-23 2012-08-09 Telefonaktiebolaget L M Ericsson (Publ) Method and Arrangement in a Communication Network for Selecting Network Elements
US20110125697A1 (en) 2009-11-20 2011-05-26 Avaya Inc. Social media contact center dialog system
US8346935B2 (en) 2010-01-15 2013-01-01 Joyent, Inc. Managing hardware resources by sending messages amongst servers in a data center
EP2405637B1 (en) 2010-07-06 2016-09-07 Deutsche Telekom AG Method, distribution system and computer program product for a deterministic automatic call distribution system
US8886604B2 (en) 2010-09-20 2014-11-11 Verizon Patent And Licensing Inc. Customer service contact
US8612989B1 (en) 2010-10-04 2013-12-17 Teradata Us, Inc. Assigning resources among multiple groups of workloads in a database system
EP2442518A1 (fr) * 2010-10-18 2012-04-18 Alcatel Lucent Procédé de traitement de requêtes SIP initiales par des backends d'un groupe SIP en présence d'une défaillance, et dispositif de traitement associé
US8782238B2 (en) 2010-11-05 2014-07-15 Verizon Patent And Licensing Inc. Server clustering in a computing-on-demand system
CN102647667B (zh) 2011-02-21 2014-10-08 华为技术有限公司 群组的管理方法及push服务器
US20120239681A1 (en) 2011-03-14 2012-09-20 Splunk Inc. Scalable interactive display of distributed data
US8880670B1 (en) * 2011-03-30 2014-11-04 Google Inc. Group membership discovery service
JP5686034B2 (ja) 2011-04-28 2015-03-18 富士通株式会社 クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
US9154529B2 (en) * 2011-09-29 2015-10-06 Genesys Telecommunications Laboratories, Inc. System to deploy a disaster-proof geographically-distributed call center
US20140059278A1 (en) * 2011-11-14 2014-02-27 Lsi Corporation Storage device firmware and manufacturing software
US9680658B2 (en) * 2011-12-07 2017-06-13 Qualcomm Incorporated Collaborative group communication method involving a context aware call jockey
US9411648B2 (en) 2012-06-28 2016-08-09 Rackspace Us, Inc. Flexible resource configuration management for computing clusters
US8792633B2 (en) 2012-09-07 2014-07-29 Genesys Telecommunications Laboratories, Inc. Method of distributed aggregation in a call center
US10454997B2 (en) 2012-09-07 2019-10-22 Avigilon Corporation Distributed physical security system
US9900432B2 (en) 2012-11-08 2018-02-20 Genesys Telecommunications Laboratories, Inc. Scalable approach to agent-group state maintenance in a contact center
US10382249B2 (en) 2012-12-04 2019-08-13 Genesys Telecomminucations Laboratories, Inc. Logging in multithreaded application

Also Published As

Publication number Publication date
US20140341365A1 (en) 2014-11-20
US20140153710A1 (en) 2014-06-05
US20160105561A1 (en) 2016-04-14
WO2014089246A1 (en) 2014-06-12
US9590840B2 (en) 2017-03-07
EP2929448A1 (en) 2015-10-14
US10382249B2 (en) 2019-08-13
US9185220B2 (en) 2015-11-10
US10129073B2 (en) 2018-11-13
US10181974B2 (en) 2019-01-15
KR20170119726A (ko) 2017-10-27
EP2929448A4 (en) 2016-04-20
US20140376713A1 (en) 2014-12-25
KR101789393B1 (ko) 2017-11-20
US9357072B2 (en) 2016-05-31
US20140156789A1 (en) 2014-06-05
CN104981794A (zh) 2015-10-14
US8879718B2 (en) 2014-11-04
US9344569B2 (en) 2016-05-17
US20160261454A1 (en) 2016-09-08
US20140153707A1 (en) 2014-06-05
KR20150098637A (ko) 2015-08-28
US8837700B2 (en) 2014-09-16
US20140156330A1 (en) 2014-06-05
EP2929448B1 (en) 2018-07-25
US20140156682A1 (en) 2014-06-05

Similar Documents

Publication Publication Date Title
KR101959161B1 (ko) 분산형 이벤트 전달 방법
US10382625B2 (en) Scalable approach to agent-group state maintenance in a contact center
US8243742B2 (en) System and method for enforcement of service level agreements and policies across geographical domains
US10171661B2 (en) System and method of distributed maintenance of contact center state
CN100536442C (zh) 对通信会话进行路由的系统和方法
US9178998B2 (en) System and method for recording calls in a WebRTC contact center
WO2017210183A1 (en) System and method for data management and task routing based on data tagging
US20100287131A1 (en) System and method for dynamic multi-platform handler assignment
US20090268715A1 (en) System and Method for Providing Service Correlation in a Service Access Gateway Environment
WO2009018181A2 (en) Mechanism of distributing voice call using email distribution groups
US9451089B2 (en) Calling center system and calling processing method thereof
EP1551162A2 (en) Call treatment in a communications system based on instant messaging
CN109144949A (zh) 用于减少联络中心中的存储空间的系统和方法
EP3847797A1 (en) System for making and receiving telephone calls

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant