ADDING A COMMUNICATION SESSION VIA A HOST IN DENY-NEW-SERVICE MODE
The interaction ID system allows communication servers to associate new sessions with existing ones, ensuring smooth operation during 'Deny New Service' mode by linking them, thus maintaining session continuity and reducing disruptions.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- AVAYA INC
- Filing Date
- 2018-06-04
- Publication Date
- 2026-05-07
AI Technical Summary
Existing communication servers struggle to handle new communication sessions while in 'Deny New Service' mode, as they cannot associate new messages with existing sessions, leading to disruptions and inefficiencies.
Implementing an interaction ID system that allows new communication sessions to be linked with existing sessions, enabling servers in 'Deny New Service' mode to process these sessions by including the interaction ID in HTTP requests, thereby allowing seamless continuation of existing sessions and acceptance of new sessions.
Enables communication servers to manage both new and existing sessions efficiently during maintenance or overload without disrupting ongoing interactions, reducing operational interruptions and enhancing system resilience.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
COPYRIGHT NOTICE
[0001] Part of the disclosure in this patent specification contains copyrighted material. The copyright holder has raised no objections to the facsimile reproduction of the patent document or the disclosure of the patent as it appears in the patent files or records of the Patent and Trademark Office, but otherwise reserves all copyrights. AREA OF REVELATION
[0002] The invention generally relates to systems and methods for communicating and, in particular, for enabling multiple communication channels that comprise a single communication session. BACKGROUND
[0003] Servers used to enable communication between participants often support different types of communication within a single dialogue (e.g., an interaction between a customer using a customer communication device and an agent using an agent communication device). A single dialogue might include one or more voice components, video components, text chat, social media, co-browsing, etc., allowing a customer to discuss an issue with an agent via voice communication and view or edit information on a webpage via data communication.
[0004] Communication servers may need to be shut down completely or partially, for example, to offload communication during overload or to allow for maintenance. A server shutdown is preferably performed smoothly, continuing existing communication tasks until completion and rejecting new ones. Once all tasks are finished, the server can be taken offline without disrupting business operations.
[0005] Servers hosting communications via the Session Initiation Protocol (SIP) provide communication in the form of a dialog that can include a variety of messages (e.g., signal and data messages). Even when configured to reject new services (e.g., in a "Deny New Service" (DNS) mode), a SIP server recognizes and accepts a new message associated with an existing dialog. If the server receives a message from outside an existing dialog (e.g., a new call), the server rejects the call, and a Session Manager (SM) can then forward the messages to one or more other servers that accept new dialogs / messages. A server with an authorization check for establishing a new communication connection is known, for example, from US 2016 / 0 198 335 A1. Despite the advantages of state-of-the-art servers, problems remain. SUMMARY
[0006] These and other needs are met by the various embodiments and configurations of the present invention. Depending on the configuration, the present invention can offer a number of advantages. These and other advantages will become apparent from the disclosure of the invention(s) contained herein.
[0007] As an overview and in one embodiment, systems and methods are provided that allow messages from a server to be processed for an existing communication session while the server is in DNS mode, and otherwise reject messages not associated with an existing session hosted by the server. In another embodiment, a new communication session can be accepted by the server in DNS mode if the new communication session includes an interaction ID of an existing session on the server. In yet another embodiment, an HTTP request can contain an interaction ID that references an existing SIP session. This allows the server to associate this new message with the existing SIP session, enabling it to process the new HTTP message even though it is in DNS mode.
[0008] Average professionals recognize that the interaction ID and other disclosed embodiments differ from the session ID as known in the prior art. In particular, a server with a session can receive messages containing a session ID and then associate these messages with the same session. However, an interaction ID allows, among other things, a new session to be accepted and linked to a previous session, with the new and previous sessions comprising a single interaction. For example, a customer might conduct an HTTP web chat (e.g., an initial session) with an agent using a specific server. The specific server is then put into DNS mode, whereupon the customer and / or agent initiates a SIP call as part of the same interaction.Based on the disclosed embodiments, the SIP call, which contains a different session and a different session identifier, but also an interaction ID, can be included in the same interaction as an exception to the server's DNS policy.
[0009] When DNS is enabled for a protocol (e.g., HTTP), all HTTP requests are rejected under current technology because there is no way to associate new HTTP messages with those of an existing session. The same server, under current technology, could also use a different protocol (e.g., SIP) and receive an INVITE message from a media server. The INVITE message will be rejected because, under current technology, the server is unable to identify the received INVITE message as associated with an existing session used for HTTP.
[0010] In one embodiment, a solution is provided for the limitations of prior art servers, wherein incoming HTTP messages include an "interactionID" query parameter specified in a callback Uniform Resource Locator (URL) of the address of the respective external instance sending the HTTP message. The server hosting the calls then determines whether the incoming HTTP message is related to an ongoing interaction and, if so, accepts the message for processing. It is worth noting that, with respect to certain embodiments disclosed herein, no additional overhead is required that would otherwise be necessary to reconstruct a conversation containing various messages, and that the previously initiated session can continue despite a DNS state of the server without requiring any additional reconstruction overhead on another server.In another embodiment, the HTTP message includes an HTTP Secure message (HTTPS).
[0011] In another embodiment: (1) an HTTP request is sent to the media server requesting an SDP offer; (2) a callback URL is used that includes an interaction ID; (3) the media server sends an HTTP message via the callback URL containing the SDP offer to the specified callback address; and (4) because the message contains the interaction ID, it is accepted and forwarded to its intended destination, such as an agent.
[0012] In another embodiment, an incoming call or web chat triggers the creation of a workflow on a server. The workflow requests an agent from Work Assignment. Work Assignment provides a callback URL for this request in the following format: https: / / serverfgdn.example.com / services / workflow_engine?interaction_id=12345 where "interaction_id" is unique for this workflow or interaction.
[0013] The server is then switched to DNS. Every new call / chat offered to the server is rejected and redirected to another server. However, "Work Assignment" calls the callback URL with the selected agent, and since this request has an "interaction_id", it is allowed.
[0014] In one embodiment, a system is disclosed comprising a processor and a network interface to a communication network; and wherein, upon receiving a request for a new session via the network interface, the processor performs the following: determine whether a server is in Deny New Service (DNS) mode; after determining that the server is not in DNS mode, accept the request; after determining that the server is in DNS mode, determine whether the request includes an interaction identifier; after determining that the server is in DNS mode and that the request lacks the interaction identifier, reject the request; after determining that the server is in DNS mode and that the new session request includes the interaction identifier, accept the request;and wherein accepting the request includes establishing the new session between a requesting device and a resource device over the communication network.
[0015] In another embodiment, a method is disclosed comprising issuing a first request for a first communication session between a requesting device and a resource device over a network, wherein the first communication session is hosted by a server; receiving an interaction identifier in response to the first request; initiating the first communication session in response to the first request, which includes the exchange of computer-encoded and -decoded data between the requesting device and the resource device over the network; and subsequently, after the first communication session has been initiated, issuing a second request for a second communication session between the requesting device and the resource device over the network, wherein the second request includes the interaction identifier.and in response to the second request, the initiation of the second communication session, which includes the exchange of computer-encoded and -decoded data between the requesting device and the resource device over the network.
[0016] In another embodiment, a method is disclosed that includes: receiving an initial request for an initial communication session on a server; determining whether the server is in DNS mode ("Deny New Service," "Reject New Service"); after determining that the server is not in DNS mode, activating the initial communication session; after determining that the server is in DNS mode, determining whether the initial request includes an interaction identifier; after determining that the server is in DNS mode and the initial request lacks the interaction identifier, rejecting the initial request; after determining that the server is in DNS mode and the request for the initial session includes the interaction identifier, accepting the request.and wherein the acceptance of the first request includes the establishment of the first session, which includes the exchange of computer-encoded data between the requesting device providing the received first request and a resource device using a communication network; and wherein the rejection includes the request for the new session.
[0017] The terms "communication session" or simply "session" are used interchangeably to describe the interaction (e.g., an exchange of computer-encoded / decoded messages) between two computer devices communicating over a network. An "interaction" can comprise one or more sessions. A "session" can comprise a single message or a multitude of messages.
[0018] The phrases "at least one", "one or more", "or", and "and / or" are open expressions that function both subjunctive and disjunctive. For example, each of the expressions "at least one of A, B, and C", "at least one of A, B, or C", "one or more of A, B, and C", "one or more of A, B, or C", "A, B, and / or C", and "A, B, or C" means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together.
[0019] The term "a" or "an" unit refers to one or more of these units. The expressions "a," "one or more," and "at least one" can be used interchangeably here. It should also be noted that the terms "comprise," "contain," and "exist" can be used interchangeably.
[0020] The term "automatic" and variations thereof, as used here, refer to any process or operation that typically runs continuously or semi-continuously and occurs without substantial human intervention during its execution. However, a process or operation may also be considered automatic if its execution involves tangible or intangible human input, provided that the input is made prior to the execution of the process or operation. Human input is considered substantial if it influences the way in which the process or operation is carried out. Human input that merely confirms the execution of the process or operation is not considered substantial.
[0021] Aspects of the present disclosure may take the form of an embodiment that is entirely hardware; an embodiment that is entirely software (including firmware, resident software, microcode, etc.); or an embodiment that combines software and hardware aspects, all of which may generally be referred to as a "circuit," "module," or "system." Any combination of one or more computer-readable media may be used. The computer-readable medium may be a computer-readable signaling medium or a computer-readable storage medium.
[0022] A computer-readable storage medium can be, for example—without limitation—an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or a suitable combination thereof. More specific examples (of a non-exhaustive list) of computer-readable storage media would be: an electrical connection with one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or a suitable combination thereof.For the purposes of this document, a computer-readable storage medium can be any tangible medium capable of containing or storing a program for use by or in conjunction with a command execution system, device, or apparatus.
[0023] A computer-readable signaling medium can contain a propagating data signal with computer-readable program code embedded within it, for example, in the baseband or as part of a carrier wave. Such a propagating signal can take various forms, including, but not limited to, electromagnetic, optical, or a suitable combination thereof. A computer-readable signaling medium can be any computer-readable medium that is not a computer-readable storage medium and that can communicate, propagate, or transport a program for use by or in conjunction with a command execution system, device, or such apparatus. Program code embedded in a computer-readable medium can be transmitted by any suitable medium, including, but not limited to, wireless, wired, fiber-optic cables, RF, etc., or any suitable combination thereof.
[0024] The terms “determine”, “calculate”, “calculate” and variations thereof are – as used here – interchangeable and include any kind of methodology, process, mathematical procedure or technique.
[0025] The term "means" as used herein shall be construed as broadly as possible in accordance with 35 USC, Section 112(f) and / or Section 112, Paragraph 6. Accordingly, a claim containing the term "means" includes all structures, materials, or actions set forth herein and all equivalents thereof. Furthermore, the structures, materials, or actions and their equivalents include all those described in the summary, the brief description of the drawings, the detailed description, the abstract, and the claims themselves.
[0026] The above is a simplified summary of the invention to facilitate understanding of some aspects of it. This summary does not constitute a comprehensive or exhaustive overview of the invention and its various embodiments. It is not intended to identify essential or critical elements of the invention, nor to define its scope, but rather to present selected concepts of the invention in a simplified form as an introduction to the more detailed description below. As can be seen, other embodiments of the invention are possible, which, alone or in combination, utilize one or more of the features mentioned above or described in detail below. Although the disclosure is presented in the form of exemplary embodiments, it should be noted that an individual aspect of the disclosure may be claimed separately. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] The present revelation is described in connection with the attached figures: Fig. 1 shows a first system in accordance with embodiments of the present disclosure; Fig. Figure 2 shows a second system in accordance with the embodiments of the present disclosure. Fig. Figure 3 shows a first interaction in accordance with the embodiments of the present disclosure; Fig. Figure 4 shows a first process in accordance with the embodiments of the present disclosure; and Fig. Figure 5 shows a second process in accordance with the embodiments of the present disclosure. DETAILED DESCRIPTION
[0028] The following description presents only embodiments and is not intended to limit the scope, applicability, or configuration of the claims. Rather, the subsequent description provides those skilled in the art with an instructive description for implementing the embodiments. It can be assumed that various modifications can be made to the function and arrangement of the elements without deviating from the spirit and scope of the appended claims.
[0029] Any reference in the description containing an element number without a sub-element identifier, when used in the plural and provided a sub-element identifier is present in the figures, is intended to refer to any two or more elements with the same element number. When such a reference is made in the singular, it is intended to refer to any one of the elements with the same element number, without restriction to any specific element. Any express contrary use or further qualification or designation takes precedence.
[0030] The exemplary systems and methods of this disclosure are also described with respect to analysis software, modules, and associated analysis hardware. However, in order to avoid unnecessarily burdening the present disclosure, known structures, components, and devices that can be represented in block diagram form and are known or otherwise summarized are omitted from the following description.
[0031] Numerous details are provided to facilitate a comprehensive understanding of this revelation. However, it should be noted that this revelation can be practiced in a variety of ways beyond the details presented here.
[0032] Fig. Figure 1 shows the system 100 in accordance with the embodiments of the present disclosure. In one embodiment, the system 100 comprises a set of request devices 108 that seek to interact with the resource devices 112. Requests from a particular request device 108 can be made without regard to a particular resource device 112. Customers 102 can then use their respective request device 108 to interact with a resource (e.g., a human agent, an automated agent, multiple agents, etc.), e.g., via the network 104. Request devices 108 can be single-purpose or multi-purpose devices and include, for example, a desktop computer, notebook computer, tablet computer, smartphone, digital (e.g., VoIP) telephone, analog telephone (e.g., POTS), and / or other devices or combinations thereof (e.g.,a desktop computer or mobile phone running a softphone application). One or more customers 102 can use a variety of requesting devices 108. Additionally, the network 104 can include a public network (e.g., the Internet), a private network (e.g., an intranet), and / or other networks, including wired and / or wireless networks.
[0033] In another embodiment, the communication management server 106 assigns a specific server 110 from the server pool 114 and, in turn, establishes a communication session with a specific resource 112 (e.g., a computer connected to a human agent, a processor running an automated agent, etc.). The communication management server 106 can form part of the communication session or, in another embodiment, merely establish and / or monitor the communication session. The communication server 106 can include a load balancer to distribute the load across the servers 110.
[0034] In another embodiment, the communication management server 106 can request a communication session from a specific server 110 and, if rejected, re-request the communication session from another server 110. Server 110 may require maintenance or other service termination. In another scenario, server 110 may have reached, or be expected to reach, an overload state and need to gently terminate sessions. That is, ongoing sessions should be allowed to continue until completion (e.g., the session is terminated by a signal from the respective requesting device 108 and / or the respective resource device 112 involved in a communication session), and new tasks, such as new communication sessions, are rejected so that they can be processed by another server 110.A rejection can be passive, meaning the message is simply ignored, or active, meaning a message is sent to indicate the rejection. When such an event occurs, Server 110 can enter a DNS state or mode (Deny New Service). In this mode, existing processes (such as communication sessions) are allowed to continue and utilize Server 110's resources, but new processes are rejected. Furthermore, a management process, such as one executed by the Communication Management Server 106, can forward subsequent requests to alternative Server 110 servers that are not in a DNS mode.
[0035] In another configuration, a single server, such as Server 110A, operates alone, i.e., with a connection to network 104 and to one or more resources 112, without a communication management server 106 and without other servers (e.g., Server 110B, 110C, etc.). Server 110A, if it shuts down or becomes overloaded, can then enter DNS mode and reject subsequent requests for a new session unless such a subsequent request contains an interaction identifier associated with a previously established session that is currently running. The single server can respond, not respond, or otherwise communicate its DNS mode.
[0036] In another embodiment, the Server 110 DNS can report to the Communication Management Server 106, which can forward new sessions to Server 110 not in DNS mode or to a Server 110 in DNS mode, provided that the session has an interaction identifier associated with a previously established session currently running with the respective Server 110.
[0037] Fig. Figure 2 shows the system 200 in accordance with at least some embodiments of the present disclosure. The communication system 200 can be a distributed system and, in some embodiments, comprises a communication network 104 that connects one or more communication devices 108 to a work allocation mechanism 216, which can be owned and operated by an enterprise that manages the contact center 202, in which a plurality of resources 112 are distributed to process incoming work objects (in the form of contacts) from customer communication devices 108.
[0038] The Contact Center 202 is configured in various ways to receive and / or send messages that are themselves work objects or related to them, as well as to process and manage (e.g., scheduling, assignment, routing, generation, billing, reception, monitoring, verification, etc.) the work objects by one or more resources 112. The work objects are typically generated and / or received requests for a processing resource 112, which embodies or is a component of a message transmitted electronically and / or electromagnetically. The Contact Center 202 may contain more or fewer components than depicted and / or provide more or fewer services than shown. The boundary indicated by the Contact Center 202 may be a physical boundary (e.g., a building, a campus, etc.), a legal boundary (e.g., a firm, a company, etc.), and / or a logical boundary (e.g., a company).Resources 112, which are used to provide services to a customer of Contact Center 202).
[0039] Furthermore, the boundary displayed by the Contact Center 202 can be as shown or, in other embodiments, may contain modifications and / or more and / or fewer components than shown. For example, in other embodiments, one or more of the resources 112, the customer database 218, and / or other components may connect to the routing engine 232 via the communication network 104, for example, if these components connect via a public network (e.g., the Internet). In another embodiment, the communication network 104 may be a private use of a network that is at least partially public (e.g., a VPN); a private network that is at least partially located within the Contact Center 202; or a mixture of private and public networks that can be used for electronic communication between the components described herein. Additionally, it should be noted that components shown as external, such as...B. the social media server 230 and / or other external data sources 234 may be physically and / or logically located within the contact center 202, but may nevertheless be considered external for purposes other than those listed. For example, the contact center 202 may operate the social media server 230 (e.g., a website where user messages can be received from customers and / or resources 112) as a means of interacting with customers via their customer communication device 108.
[0040] Customer communication devices 108 are designed as external devices with respect to the contact center 202, as they are under the more direct control of their respective users or customers. However, embodiments may be provided in which one or more customer communication devices 108 are physically and / or logically located within the contact center 202 and are still considered external to the contact center 202, for example, if a customer uses the customer communication device 108 at a kiosk and connects to a private network of the contact center 202 (e.g., a WiFi connection to a kiosk, etc.) that is located within or controlled by the contact center 202.
[0041] It should be noted that the description of Contact Center 202 provides at least one embodiment, which makes the following embodiments easier to understand without limiting these embodiments. Furthermore, Contact Center 202 can be modified, added to, and / or removed from it without altering the scope of any embodiment described herein and without limiting the scope of the embodiments or claims, unless expressly provided otherwise.
[0042] Additionally, the Contact Center 202 may include the Social Media Website 230, and / or other external data sources 234 may be used to provide a means for a resource 112 to receive and / or retrieve contacts and establish a connection with a customer of a Contact Center 202. Other external data sources 234 may include data sources such as service bureaus, third-party data providers (e.g., credit reference agencies, public and / or private archives, etc.). Customers may use their respective customer communication device 108 to send / receive communications via the Social Media Server 230.
[0043] In accordance with at least some embodiments of the present disclosure, the communication network 104 can comprise any type of known communication media or a collection of communication media and use any type of protocol for transporting electronic messages between endpoints. The communication network 104 can include wired and / or wireless communication technologies. The Internet is an example of the communication network 104, which is an Internet Protocol (IP) network consisting of many computers, computer networks, and other communication devices around the world connected via many telephone systems and other means.Other examples of the communication network 104 include, without limitation, an ordinary Plain Old Telephone System (POTS), an Integrated Services Digital Network (ISDN), the Public Switched Telephone Network (PSTN), a Local Area Network (LAN), a Wide Area Network (WAN), a Session Initiation Protocol (SIP) network, a Voice over IP (VoIP) network, a mobile network, and any other type of packet-switched or circuit-switched network known in the field. Furthermore, it should be noted that the communication network 104 need not be limited to a single network type but may consist of several different networks and / or network types. For example, embodiments of the present disclosure may serve to increase the efficiency of a grid-based contact center 202. Examples of grid-based contact centers 202 are described in U.S. Patent Publication No.2010 / 0296417, described in more detail by Steiner, the entire content of which is hereby incorporated by reference. Furthermore, the communication network can comprise 104 different communication media, such as coaxial cables, copper cables / wires, fiber optic cables, antennas for transmitting / receiving radio messages, and combinations thereof.
[0044] The communication devices 108 can correspond to customer communication devices. In accordance with at least some embodiments of the present disclosure, a customer can use their communication device 108 to initiate a work object. Illustrative work objects include, but are not limited to, a contact directed to and received by a contact center 202, a web page request directed to and received by a server farm (e.g., a collection of servers), a media request, an application request (e.g., a request for application resource placement on a remote application server, such as a SIP application server), and the like. The work object can be in the form of a message or a collection of messages transmitted over the communication network 104. The work object can be, for example, a telephone call, a packet, or a collection of packets (e.g., a telephone call).IP packets transmitted over an IP network), an email message, an instant message, an SMS message, a fax, and combinations thereof are transmitted. In some embodiments, the communication may not necessarily be directed to the work allocation mechanism 216, but may be located on another server in the communication network (servers 104, 106), where it is harvested by the work allocation mechanism 216, which generates a work object for the harvested communication, e.g., a social media server 230. An example of such harvested communication includes social media communication harvested by the work allocation mechanism 216 from a social media network or the server 230. Exemplary architectures for harvesting social media communications and generating work objects based on them are described in US patent applications US 20100235218 A1, US 20110125826 A1 and US 20110125793 A1 dated 20.March 2010, February 17, 2010 or February 17, 2010 described.
[0045] The format of the work object can depend on the capabilities of the communication device 108 and the format of the communication. In particular, work objects are logical representations within a contact center 202 of work to be performed in connection with handling communication received at the contact center 202 (and especially at the work assignment mechanism 216). The communication can be received and maintained at the work assignment mechanism 216, a switch or server connected to the work assignment mechanism 216, or similar, until a resource 112 is assigned to the work object representing that communication. At that point, the work assignment mechanism 216 forwards the work object to a routing engine 232 to connect the communication device 108 that initiated the communication to the assigned resource 112.
[0046] Although the routing engine 232 is presented as separate from the work allocation mechanism 216, the routing engine 232 may be integrated into the work allocation mechanism 216, or its functionality may be performed by the work allocation engine 220.
[0047] In accordance with at least some embodiments of the present disclosure, the communication devices 108 may comprise any type of known communication equipment or collection of communication equipment. Examples of suitable communication devices 108 include, but are not limited to, a personal computer, laptop, personal digital assistant (PDA), mobile phone, smartphone, telephone, or combinations thereof. In general, any communication device 108 may be adapted to support video, audio, text, and / or data communication with other communication devices 108 and with the processing resources 112. The type of medium used by the communication device 108 to communicate with other communication devices 108 or processing resources 112 may depend on the communication applications available on the communication device 108.
[0048] In accordance with at least some embodiments of the present disclosure, the work object is sent by the combined efforts of the work assignment mechanism 216 and the routing engine 232 toward a collection of processing resources 112. The resources 112 can be either fully automated resources (e.g., interactive voice response (IVR) units, processors, servers, or the like), human resources using communication devices (e.g., human agents with a computer, telephone, laptop, etc.), or other resources known to be used in the contact center 202.
[0049] As described above, the work allocation mechanism 216 and the resources 112 can be operated by a common entity in a contact center 202 format. In some embodiments, the work allocation mechanism 216 can be managed by multiple companies, each with its own dedicated resources 112 connected to the work allocation mechanism 216.
[0050] In some embodiments, the work assignment mechanism 216 includes a work assignment engine 220, which enables the work assignment mechanism 216 to make intelligent routing decisions for work objects. In some embodiments, the work assignment engine 220 is configured to manage and make work assignment decisions in a queueless contact center 202, as described in U.S. Patent Application No. US 2011 0255683 A1. In other embodiments, the work assignment engine 220 can be configured to make work assignment decisions in a traditional queue-based (or skill-based) contact center 102.
[0051] The work allocation engine 220 and its various components can reside in the work allocation mechanism 216 or on different servers or processing devices. In some embodiments, cloud-based computing architectures can be used, with one or more components of the work allocation mechanism 216 being made available in a cloud or network so that they can be shared by multiple different users. The work allocation mechanism 216 can access the customer database 218 to retrieve, for example, records, profiles, purchase history, previous work objects, and / or other aspects of a customer known to the contact center 202. The customer database 218 can be updated in response to a work object and / or to input from the resource 112 that processes the work object.
[0052] It should be noted that one or more components of the Contact Center 202, in their entirety or components thereof (e.g., hybrid), can be implemented in a cloud-based architecture, in addition to embodiments that are entirely on-premises. In one embodiment, the customer communication device 108 is connected to one of the resources 112 via components that are entirely hosted by a cloud-based service provider, with processing and data storage elements being dedicated to the operator of the Contact Center 202 or being shared or distributed among a variety of service provider customers, one of which is the Contact Center 202.
[0053] In one embodiment, a message is generated by the customer communication device 108 and received via the communication network 104 in the work allocation mechanism 216. The message received by a contact center 202, e.g., by the work allocation mechanism 216, is generally (and also here) referred to as a "contact". The routing engine 232 forwards the contact to at least one of the resources 112 for processing.
[0054] In another embodiment, the routing engine 232 and / or the work allocation mechanism 216 can be executed by a processor of the communication management server 106. In other embodiments, a separate processing component can be used to execute at least one of the routing engine 232 and the work allocation mechanism 216.
[0055] Fig. Figure 3 shows the interaction 300 in accordance with embodiments of the present disclosure. In one embodiment, a device requesting a communication session, e.g., the customer communication device 108, sends the first request 302 to the communication management server 106. The communication management server 106 then forwards the first request 304 to the communication server 110A, which in response sends the message 306, which has an interaction identifier (Interaction ID), back to the customer device 108. Subsequently, the communication session 308 is established, which may include the interaction ID. It should be noted that the communication session 308 may comprise one or more messages or other exchanges that are linked within a single session, e.g., identified by a session cookie. A subsequent session, which comprises a subsequent part of the same interaction (e.g.,Session 308 and session 316, which comprise the same interaction, cannot use the same session identifier because the exchanges within a single session are different (e.g., different protocol), and therefore use a session identifier that, as discussed below, does not link different sessions as parts of the same interaction.
[0056] In another embodiment, session 308 has been initiated and is currently active (e.g., not terminated) when DNS mode is initiated for communication server 110 in step 310. The request device 108 receives an interaction ID. It should be noted that alternative means of providing the interaction ID to the request device 108 may be used without altering the scope of the embodiments contained herein. For example, the interaction ID may be provided in one or more messages from communication management server 106, communication server 110A, or resource device 112, which serve solely to provide the request device 108 with the interaction ID. Additionally or alternatively, the interaction ID may be incorporated into one or more data or other messages exchanged as part of session 308.In another embodiment, the interaction ID of the request device 108 can be provided in response to an explicit request for the interaction ID.
[0057] Since request device 108 has a valid interaction ID and is attempting to establish another communication session with the same resource using resource device 112, request device 108 can then submit the subsequent request 312, which includes the interaction ID. The subsequent request 312 can be issued to communication management server 106, which in turn forwards the request to communication server 314. In response, communication server 110A successfully determines the interaction ID associated with request 312 (and / or request 314) that is assigned to the ongoing session 308 and, in response, initiates session 316 between resource 112 and request device 108.After the completion of session 308 and session 316, and all other interactions hosted by communication server 110, communication server 110 can be taken offline without interrupting ongoing interactions. In another embodiment, request 302 and / or request 312 can be issued by resource device 112 to communication server 110 and / or communication management server 106. Note that session 316 can consist of a single message or a plurality of messages.
[0058] Fig. Figure 4 shows process 400 in accordance with the embodiments of the present disclosure. Process 400 starts at one of the steps 402 (e.g., 402A, 402B, 402C, etc.) because a new session can be requested at any time. In one embodiment, step 404 requests a new session, for example, by the request device 108 sending a request message to the communication management server 106 and seeking interaction with a resource that uses or includes the resource device 112. The request is then forwarded for processing by a communication server 110, which can then select a specific resource using the resource device 112. A specific server may already be known, for example, as being associated with an existing session with the request device 108.
[0059] Step 406 then determines whether the selected server is in DNS mode, for example, by querying a specific server via access to a record in a memory or database, or by other means of maintaining a server's state. If step 406 is determined to be negative, step 408 can be executed, providing the requester with an interaction ID. Step 410 executes the session, which continues until step 412 is determined to be positive. As long as step 412 is determined to be negative, session 410 continues. Once step 412 is determined to be positive, step 414 terminates the session, and process 400 can be terminated for a specific session executed in step 410.
[0060] If step 406 is determined affirmatively, step 416 can request a valid interaction ID, such as the one provided to a specific requester (e.g., one from request resource 108) during a previous iteration of process 400, and specifically step 408. If the interaction ID is already known, step 416 can determine whether the provided interaction ID is valid, i.e., whether the interaction ID is associated with a concurrent communication session execution (e.g., another iteration of process 400, and specifically step 410). If step 416 is determined negatively, step 418 rejects the session, which can then be routed to an available server in step 420. If step 416 is determined affirmatively, step 410 can be executed, with the session continuing until it is determined to have completed in step 412 and terminated in step 414.
[0061] Fig.Figure 5 shows process 500 in accordance with the embodiments of the present disclosure. Process 500 starts at one of the steps 502 (e.g., 502A, 502B, 502C, etc.) because a new session can be requested at any time. In one embodiment, step 504 requests a new session, for example, by the request device 108 sending a request message to the communication management server 106 and seeking interaction with a resource that uses or includes the resource device 112. The request is then forwarded by a communication server for processing, which can then select a specific resource via the resource device 112. A specific server may already be known, for example, as being associated with an existing session with the request device 108.
[0062] Step 506 then determines whether the selected server is in DNS mode, for example, by querying a specific server via access to a record in a memory or database, or by other means of maintaining a server's state. If step 506 is negative, step 508 can be executed, providing the requester with an interaction ID. Step 510 executes the session, which continues until step 512 is positive. While step 512 is negative, session 510 continues. Once step 512 is positive, step 514 terminates the session, and process 500 can be terminated for a specific session executed in step 510.
[0063] If step 506 is determined affirmatively, step 516 can request a valid interaction ID as provided to a specific requester (e.g., one of the request resources 108) during a previous iteration of process 500, and specifically step 508. If the interaction ID is already known, step 516 can determine whether the provided interaction ID is valid, i.e., whether the interaction ID is associated with a concurrent communication session execution (e.g., another iteration of process 500, and specifically step 510). If step 516 is determined negatively, step 518 can determine whether the request has a priority at or above a threshold priority, and if so, process 500 proceeds to step 510 to execute the session until it is terminated in step 514.
[0064] A threshold priority can be chosen according to the workload of a target server and / or the workload of other servers. For example, during a historically low period of activity, several servers might be placed in DNS mode for maintenance (e.g., hardware and / or software upgrades). An unexpected increase in activity can cause servers not in DNS mode to become overloaded or unresponsive, which in turn can cause those servers not in DNS mode due to maintenance to enter DNS mode because of the overload. Simply queuing requests to wait for an available server results in unacceptable delays. Once a session request is received, the session must be initiated and processed within an acceptable response time. This can be a contractual requirement (e.g.,QoS requirements) to avoid customer dissatisfaction (e.g., user 102 dropping a call, ending an unanswered chat, etc.) or to prevent cascading failures. For example, if multiple initial sessions are running, but adding more sessions is required to complete the first session, a deadlock can occur; the initial sessions cannot be completed until the subsequent sessions start, but the subsequent sessions cannot start until the initial sessions are complete and the overloaded servers can accept new sessions. Accordingly, an exception to a server's current DNS mode can be provided based on priority (e.g., emergency, atypical value, etc.) and / or the workload of a pool of servers that would otherwise be provisioned with the session.This allows session requests to be considered more frequently, even in DNS mode.
[0065] The threshold and / or priority for one or more session requests can be determined by a variety of different methods. A numerical score, low-mid-high indicators, exception flags, and / or other indicators can be used. The threshold / priority can be chosen so that a certain number or percentage of session requests, which would otherwise be rejected, are accepted by a server in DNS mode.
[0066] The interaction ID can be created by a server, including but not limited to servers 110, 106, and / or by other computer components capable of creating an interaction ID. If not created by server 110, the interaction ID can be created for access by server 110. The interaction ID can be a globally unique identifier (GUID), a serial number, or based on another numbering scheme that is unique within the operating environment of server 110. Sessions can be numerically identified by a loop counter. For example, if the number of concurrent sessions has historically never exceeded a few hundred, sessions can reuse the number "1" after a sufficiently large number, such as 10,000 sessions, and continue until the next 10,000 sessions.
[0067] In another embodiment, the interaction identifier can be encoded to include the priority identifiers. For example, a hash value, a block of values, prefixed or suffixed alphanumeric characters, etc., can be used to allow server 110 to determine the priority of a session request with minimal processing requirements.
[0068] If step 518 is determined to be negative, step 520 responds with a rejection, and step 522 can then forward the session request to an alternative server. If either step 516 or 518 is determined to be affirmative, step 510 can be executed, and the session continues until it is determined to be complete (step 512) and terminated (step 514).
[0069] For illustrative purposes, the preceding description presents methods in a specific order. It should be noted that in alternative embodiments, the methods may be performed in a different order than described. It should also be noted that the methods described above may be executed by hardware components or may be contained in sequences of machine-executable instructions that can be used to instruct a machine to perform the methods, such as a general-purpose or specialized processor (e.g., GPU, CPU) or logic circuits programmed with the instructions to execute the methods (e.g., FPGA). In another embodiment, a processor may be a system or collection of processing components, such as…A processor can be located on a client device and a server, a collection of devices each with its own processor, or a shared or remote processing service (e.g., a cloud-based processor). A system of processors can include the task-specific allocation of processing tasks and / or shared or distributed processing tasks.
[0070] These machine-executable instructions can be stored on one or more machine-readable media, such as CD-ROMs or other types of optical disks, floppy disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other machine-readable media suitable for storing electronic instructions. Alternatively, the procedures can also be carried out by a combination of hardware and software.
[0071] While machine-executable instructions can be stored and executed locally on a specific machine (e.g., personal computer, mobile computing device, laptop, etc.), it should be noted that the storage of data and / or instructions and / or the execution of at least part of the instructions may occur via connectivity to a remote data storage and / or processing device or collection of devices, commonly known as the "cloud," but may also include public, private, dedicated, shared, and / or other service bureaus, computer services, and / or "server farms."
[0072] Examples of the processors described here include, but are not limited to, Qualcomm® Snapdragon® 800 and 801, Qualcomm® Snapdragon® 610 and 615 with 4G LTE integration and 64-bit computing, Apple® A7 processor with 64-bit architecture, Apple® M7 motion coprocessors, Samsung® Exynos® series, the Intel® Core™ processor family, the Intel® Xeon® processor family, the Intel® Atom™ processor family, the Intel Itanium® processor family, Intel® Core® i5-4670K and i7-4770K 22nm Haswell, Intel® Core® i5-3570K 22nm Ivy Bridge, the AMD® FX™ processor family, AMD® FX-4300, FX-6300 and FX-8350 32nm Vishera, AMD® Kaveri processors, Texas Instruments® Jacinto C6000™ automotive infotainment processors, mobile Texas Instruments® OMAP™ automotive-grade processors, ARM® Cortex™-M processors,ARM® Cortex-A and ARM926EJ-S™ processors and other industry-equivalent processors are included and can perform computational functions using all known or future standards, instruction sets, libraries and / or architectures.
[0073] All steps, functions and operations described here can be executed continuously and automatically.
[0074] The exemplary systems and methods of this invention have been described with regard to communication systems and components, as well as methods for monitoring, improving, and enhancing communications and messages. However, to avoid unnecessarily complicating the present invention, some known structures and devices have been omitted from the preceding description. This omission is not to be understood as a limitation of the scope of the claimed invention. Specific details are provided to aid in understanding the present invention. It should be noted, however, that the present invention can be implemented in a variety of ways beyond the details presented here.
[0075] While the exemplary embodiments presented here group together the various components of the system, certain components of the system can be located remotely, in other locations within a distributed network, such as a LAN and / or the Internet, or within a dedicated system. It should therefore be noted that the components or parts (e.g., processors, memory, interfaces, etc.) of the system can be combined into one or more devices, such as one or more servers, computers, computing devices, terminals, "clouds," or other distributed processing, or aggregated on a specific node of a distributed network, such as an analog and / or digital telecommunications network, a packet-switched network, or a circuit-switched network. In another embodiment, the components can be physically or logically distributed across a multitude of components (e.g.,A processor can comprise a first processor on one component and a second processor on another component, each performing part of a common task and / or an assigned task. It follows from the foregoing that, for reasons of computational efficiency, the system components can be located anywhere within a distributed network of components without affecting the system's operation. For example, the various components can be located in a switch such as a PBX system and a media server, a gateway, one or more communication devices, at one or more user locations, or a combination thereof. Similarly, one or more functional parts of the system could be distributed between one or more telecommunications devices and an associated computing device.
[0076] Furthermore, it should be noted that the various connections between the elements can be wired or wireless, or any combination thereof, or any other known or subsequently developed element(s) capable of supplying and / or transmitting data to and from the connected elements. These wired or wireless connections can also be secure and capable of transmitting encrypted information. Transmission media used as links can be, for example, any suitable carrier for electrical signals, such as coaxial cable, copper wire, and optical fibers, in the form of acoustic or light waves, such as those generated in radio wave and infrared data transmission.
[0077] Although the flowcharts have been discussed and illustrated with regard to a specific sequence of events, it should be taken into account that changes, additions and omissions may occur in this sequence without substantially affecting the functioning of the invention.
[0078] A number of variations and modifications of the invention can be used. It would be possible to include some features of the invention without including others.
[0079] In a further embodiment, the systems and methods of this invention can be implemented in conjunction with a specialized computer, a programmed microprocessor or microcontroller and one or more peripheral integrated circuit elements, an ASIC or other integrated circuit, a digital signal processor, a hard-wired electronic or logic circuit such as a discrete circuit, a programmable logic device, or a gate array such as a PLD, PLA, FPGA, PAL, a specialized computer, comparable means, or the like. In general, any device or means suitable for implementing the methodology presented herein can be used to implement the various aspects of this invention. Exemplary hardware that can be used for the present invention includes computers, handheld devices, telephones (e.g., smartphones, mobile phones, etc.).Cellular, internet-enabled, digital, analog, hybrid, and other hardware, as well as other hardware known in the field, are considered. Some of these devices include processors (e.g., a single or multiple microprocessors), memory, non-volatile storage, input devices, and output devices. Furthermore, alternative software implementations, including but not limited to distributed processing or distributed processing of components / objects, parallel processing, or virtual machine processing, can be designed to implement the methods described herein.
[0080] In another embodiment, the disclosed methods can be easily implemented in conjunction with software using object-oriented or object-based software development environments that provide portable source code usable on a variety of computer or workstation platforms. Alternatively, the disclosed system can be implemented partially or completely in hardware using standard logic circuits or a VLSI design. Whether the systems according to this invention are implemented in software or hardware depends on the speed and / or efficiency requirements of the system, its specific function, and the particular software or hardware systems, or microprocessor or microcomputer systems.
[0081] In a further embodiment, the disclosed methods can be partially implemented in software that is stored on a storage medium and executed on a programmed general-purpose computer with the assistance of a controller and memory, a specialized computer, a microprocessor, or the like. In these cases, the systems and methods of this invention can be implemented as a program embedded in a PC, such as an applet, Java®, or CGI script, as a resource on a server or computer workstation, as a routine in a dedicated measurement system, a system component, or the like. The system can also be implemented by physically integrating the system and / or the method into a software and / or hardware system.
[0082] Although the present invention describes components and functions that are implemented in the embodiments with reference to certain standards and protocols, the invention is not limited to such standards and protocols. Other similar standards and protocols not mentioned here exist and are deemed to be incorporated into the present invention. Furthermore, the standards and protocols mentioned here, and other similar standards and protocols not mentioned here, are regularly replaced by faster or more effective equivalents that have essentially the same functions.
[0083] Such substitute standards and protocols with the same functions are considered equivalents that are incorporated into the present invention.
[0084] The present invention comprises components, methods, processes, systems, and / or devices in various embodiments, configurations, and aspects, essentially as presented and described herein, including various embodiments, subcombinations, and subsets thereof. Those skilled in the art will understand how to manufacture and use the present invention after understanding the present disclosure. The present invention comprises, in various embodiments, configurations, and aspects, the provision of devices and processes in the absence of items not presented and / or described herein, or in various embodiments, configurations, or aspects thereof, even in the absence of such items as may have been used in earlier devices or processes, e.g.,to improve performance, make handling easier and reduce implementation costs.
[0085] The foregoing discussion of the invention has been presented for illustrative and descriptive purposes. It is not suitable for limiting the invention to the form(s) disclosed herein. For example, the foregoing detailed description summarizes various features of the invention in one or more embodiments, configurations, or aspects to simplify the disclosure. The features of the embodiments, configurations, or aspects of the invention may be combined in alternative embodiments, configurations, or aspects other than those mentioned above. This disclosure is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly stated in each claim.Rather, the inventive aspects, as the following claims demonstrate, lie in fewer than all features of a single embodiment, configuration, or aspect disclosed above. Therefore, the following claims are hereby incorporated into this detailed description, each claim being considered a separate preferred embodiment of the invention.
[0086] Even if the description of the invention included a description of one or more embodiments, configurations, or aspects and certain variations and modifications, other variations, combinations, and modifications also fall within the scope of the invention, such as those that might correspond to the skills and knowledge of a person skilled in the art after understanding the present disclosure. The intention is to obtain rights that encompass alternative embodiments, configurations, or aspects, including alternative, interchangeable, and / or equivalent structures, functions, areas, or steps in addition to those claimed, regardless of whether such alternative, interchangeable, and / or equivalent structures, functions, areas, or steps are disclosed herein or not, and without the intention of publicly dedicating a patentable subject matter.
Claims
[1] System (100) comprising the following: a processor; and a network interface to a communication network (104); and where, after receiving a request via the network interface for a new session, the processor performs the following: Determine if a server (110) is in DNS mode (Deny New Service); If it is determined that the server (110) is not in DNS mode, accept the request; If it is determined that the server (110) is in DNS mode, determine whether the request contains an interaction identifier; If it is determined that the server (110) is in DNS mode and the request does not contain an interaction identifier, the request will be rejected; If it is determined that the server (110) is in DNS mode and the request for the new session contains the interaction identifier, accept the request; and where accepting the request includes establishing the new session between a requesting device (108) and a resource device (112) via the communication network (104). [2] System (100) according to claim 1, wherein the determination of whether the request includes the interaction identifier further includes determining whether the interaction identifier is assigned to a currently active session that was previously established between the request device (108) and the resource device (112). [3] System (100) according to claim 2, wherein the new session and the currently active session each use an application layer implementation and the application layer implementation is different between the new session and the currently active session. [4] System (100) according to claim 3, wherein one of the new session and the currently active session comprises the application layer implementation using the Hypertext Transfer Protocol (HTTP) and the other of the new session and the currently active session comprises the application layer implementation using the Session Initiation Protocol (SIP). [5] System (100) according to claim 1, wherein the processor, after determining that the server (110) is not in DNS mode, responds to the request device (108) with the interaction identifier. [6] System (100) according to claim 1, wherein the request for the new session comprises a Callback Uniform Resource Locator (URL). [7] System (100) according to claim 1, wherein the server (110) comprises different systems which are managed by the signals provided by the processor via the network interface. [8] System (100) according to claim 1, wherein the server (110) provides the interaction identifier to the request device (108). [9] System (100) according to claim 1, further comprising the processor, wherein, after determining that the server (110) is in DNS mode and the request does not contain the interaction identifier, it is further determined whether the request includes a priority indicator that is not greater than a previously defined threshold exception indicator, and, if this is determined affirmatively, the request is accepted and, if this is determined negatively, the request is rejected. [10] Procedures, comprising the following, Issuing an initial request for an initial communication session between a requesting device (108) and a resource device (112) via a communication network (104), wherein the initial communication session is hosted by a server (110); Receiving an interaction identifier in response to the first request; in response to the first request, initiating the first communication session, which includes the exchange of computer-encoded and -decoded data between the requesting device (108) and the resource device (112) via the communication network (104); At a later time, after the first communication session has been initiated, issuing a second request for a second communication session between the requesting device (108) and the resource device (112) via the communication network (104), the second request including the interaction identifier; and In response to the second request, the initiation of the second communication session, which includes the exchange of computer-encoded and -decoded data between the requesting device (108) and the resource device (112) via the communication network (104).
Citation Information
Patent Citations
Grid-based contact center
US20100296417A1
System and method for terminating communication sessions with roaming mobile devices
US20160198335A1