Patent ID: 12212715

DETAILED DESCRIPTION

As described above, systems have been developed to facilitate the handling of incoming calls to a call center. These systems, however, suffer from a number of significant deficiencies and inefficiencies related to communication session auditing. First, existing systems typically provide auditing for only a single type of communication session (e.g., phone calls) and fail to provide effective auditing functionality for other types of communication sessions. Second, existing systems typically rely on agent-initiated notification processes to alert a client that there is an ongoing communication session that the client may wish to audit. Such an approach may be inefficient and inaccurate and often results in wasting the client's time and system resources. Finally, existing systems fail to provide the client with flexibility with respect to methods for auditing a communication session.

The present disclosure contemplates various embodiments that may address these and other deficiencies associated with existing approaches. According to one example embodiment, a system is disclosed. The system comprises an applications server configured to communicatively couple to a softswitch. The applications server is configured to monitor a communication session between an agent and at least one of a caller and a called party for one or more audit triggers. The applications server is configured to detect one or more audit triggers and, in response to the detection of the one or more audit triggers, send a notification to a client. The notification may identify one or more communication session auditing procedures available for the communication session. The applications server is configured to receive, from the client in response to the notification, a request to audit the communication session using at least one of the available one or more communication session auditing procedures. The applications server is configured to perform the requested at least one communication session auditing procedure.

According to another example embodiment, a method is disclosed. The method comprises establishing a communication session between an agent and at least one of a caller and a called party. The method comprises establishing a communication session between an agent and at least one of a caller and a called party. The method comprises monitoring the communication session for one or more audit triggers. The method comprises detecting the one or more audit triggers. The method comprises, in response to detecting the one or more audit triggers, sending a notification to a client. The notification may identify one or more communication session auditing procedures available for the communication session. The method comprises receiving, from the client in response to the notification, a request to audit the communication session using at least one of the available one or more communication session auditing procedures. The method comprises performing the requested at least one communication session auditing procedure.

FIG.1is a block diagram of an example communication system100, in accordance with certain embodiments. More particularly,FIG.1illustrates communication system100comprising one or more callers102a-102n, a service platform106, one or more operator stations108a-108n, and one or more clients130. AlthoughFIG.1illustrates one example of communication system100, it should be understood that this is for purposes of example only and the present disclosure is not limited to the example communication system ofFIG.1. Rather, the present disclosure contemplates that other embodiments of system100may be used without departing from the scope of the present disclosure.

In the example embodiment ofFIG.1, callers102a-102n, service platform106, operator stations108a-108n, and client130are coupled to network104through various communications links (as described in more detail below). As used throughout this document, the term “couple” and/or “coupled” refers to any direct or indirect communication between two or more elements, whether or not those elements are in physical contact with one another. For example, each caller102may use any computing and/or communication device capable of enabling the communication of information to or from one or more of service platform106, operator stations108, and client130over network104. Although referred to herein as a caller, it should be understood that callers102are not limited to individuals or devices that initiate a telephone call. Rather, the present disclosure contemplates that callers102may engage in a variety of types of communication sessions (e.g., telephone calls, video conferencing, text message, or web chat). It should also be understood that a caller102is not limited to a party initiating a communication session. For example, callers102a-102nmay be a calling party or a called party that communicates and/or receives data to and/or from service platform106, operator stations108, and/or client130. Each caller102may use, for example, a telephone (e.g., a wireline telephone), a wireless device (e.g., a smartphone), a voice over Internet Protocol (IP) device, a desktop computer, a laptop computer, a personal digital assistant (PDA), a workstation, a mainframe computer, a mini-frame computer, a web server, or any other computing and/or communicating device.

Network104may comprise any wireless network, wireline network, or combination of wireless and wireline networks capable of supporting communication between network elements using ground-based and/or space-based components. For example, network104may comprise a data network, a public switched telephone network (PSTN), an integrated services digital network (ISDN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), all or a portion of the global computer network known as the Internet, and/or other communication systems or combination of communication systems at one or more locations.

Service platform106receives and/or communicates data (e.g., from or to callers102a-102n, operator stations108, and/or client130) through network104coupled to service platform106. In the example ofFIG.1, service platform106couples to network104through communications link116. In certain embodiments, service platform106operates to collect, store, and/or communicate data to and/or from network104. In certain embodiments, service platform106may be configured to integrate with, for example, telephone carriers and private branch exchange (PBX) equipment to provide a stand-alone, fully functional call center environment. In some cases, the carrier and PBX integration may be established using a Session Initiation Protocol (SIP) trunk integration method. In operation, service platform106may provide a full suite of call center and enterprise functionality. The various elements of service platform106and exemplary functionality of service platform106are described in more detail below.

In the example embodiment ofFIG.1, system100also includes a plurality of operator stations108athrough108n. Operator stations108athrough108nare coupled to service platform106through communications link120. Operator stations108are capable of receiving, collecting, storing, and/or communicating data to and/or from network104. In the example embodiment ofFIG.1, operator stations108athrough108nare coupled to network104through communications links118aand118n, respectively.

In certain embodiments, operator stations108athrough108nmay be comprised in a call center. For example, each operator station108may be a live agent-based data collection system capable of collecting data from, for example, caller102or client130. Although operator station108is an agent-based system in the example embodiment ofFIG.1, the present disclosure contemplates that other suitable data collection system may be used without departing from the scope of the present disclosure.

As used herein, the term agent should be interpreted broadly to encompass any individual that caller102may be connected to, whether as part of an incoming call from caller102routed to service platform106or as part of an outgoing call transmitted from service platform106to a user (e.g., caller102). As non-limiting examples, an agent may refer to an agent working in a call center (e.g., at one of operator stations108), an employee of an organization associated with service platform106and/or operator stations108, a technician (that may or may not be working remotely from a call center), or any other suitable person or entity. Although certain embodiments may describe an agent as an operator associated with an operator station108in a call center, the present disclosure is not limited to such an example embodiment. Rather, the various embodiments described herein may be applied to other suitable scenarios, such as those in which operator stations108do not make up a traditional call center (having a plurality of operator stations in one, centralized location). For example, in certain embodiments operator stations108may be distributed geographically and may couple to service platform106and caller102via one or more different networks.

Operator stations108may comprise any suitable computing and/or communicating device or combination of devices. In the example embodiment ofFIG.1, each operator station108includes a host112and a communication device114. Communication device114enables an agent to communicate with caller102. Communication device114may comprise, for example, a telephone, a wireless device, a voice over IP device, or any other computing and/or communicating device or combination of devices. Although the example embodiment ofFIG.1illustrates host112and communication device114as separate devices, one device that is capable of performing the desired functionality could be used without departing from the scope of the present disclosure.

Host112may comprise, for example, a desktop computer, a laptop computer, a server computer, a personal digital assistant, and/or any other computing or communicating device or combination of devices. In certain embodiments, host112may be connected to a PBX-based automated call distribution (ACD) or an ACD of service platform106. Host112may be configured to run software, such as a soft agent. The soft agent may, for example, include a SIP-based soft phone and switch-specific computer telephony integration (CTI) control of the agent state during call handling. The soft agent may provide an interface to service platform106, and in particular to applications server120and softswitch server122of service platform106. Host112may include a graphical user interface (GUI) that enables a live agent to collect, enter, process, store, retrieve, amend, and/or dispatch data during the interaction of operator station108with a user of caller102or client130(e.g., during a call). Host112may run console software that provides, for example, IP-based call handling using the GUI and, for example, an input device (such as a mouse, keyboard, microphone, or other suitable input device).

Each host112may be capable of executing and/or displaying one or more intelligent scripts and/or other types of scripts that at least partially contribute to the collection of data from caller102. As described below, an intelligent script may guide call center agents through call completion steps.

Client130may be associated with a business or other entity that has engaged a call center to manage incoming and/or outgoing calls. In particular embodiments, client130may be responsible for auditing communication sessions associated with the call center (e.g., calls or texts to the call center or web chats through the business's website), as described in more detail below. In the example ofFIG.1, client130is coupled to network104through communications link132. Like caller102described above, client130may use any computing and/or communication device capable of enabling the communication of information to or from one or more of service platform106, operator stations108, and callers102over network104. For example, client130may use a telephone (e.g., a wireline telephone), a wireless device (e.g., a smartphone), a voice over IP device, a desktop computer, a laptop computer, a PDA, a workstation, a mainframe computer, a mini-frame computer, a web server, or any other computing and/or communicating device.

As noted above, in the example embodiment ofFIG.1callers102a-102n, service platform106, operator stations108-108n, and client130are coupled to network104through various communications links. More particularly, system100includes communications links110,116,118,120and132, each operable to facilitate the communication of data to and/or from network104. Communications links110,116,118,120, and132may include any hardware, software, firmware, or combination thereof. In various embodiments, communications links110,116,118,120, and132may comprise communications media capable of assisting in the communication of analog and/or digital signals. Communications links110,116,118,120, and132may, for example, comprise a twisted-pair copper telephone line, a fiber optic line, a Digital Subscriber Line (DSL), a wireless link, a USB bus, a PCI bus, an ethernet interface, or any other suitable interface operable to assist in the communication of information.

Data may be transmitted over communications links110,116,118,120,132using any suitable protocol. As non-limiting examples, protocols such as the Real-time Transport Protocol (RTP) and WebRTC may be used. RTP is a network protocol for delivering audio and video over IP networks via streaming. WebRTC is an open framework for the web that enables high quality real-time communication sessions over a network. WebRTC allows for the streaming of audio and/or video media without requiring an intermediary or third-party software. RTP and WebRTC may be particularly useful in the various embodiments described herein, because they can advantageously allow for the receipt of real-time data from the communication session between caller102and an agent associated with an operator station108, if desired. For example, as will be discussed in further detail below, client130may receive pre-recorded and/or real-time audio, a text feed from a communication session, and/or view a script guiding the agent associated with operator station108and responses from caller102in real-time.

As noted above, service platform106may provide a full suite of call center and enterprise functionality. Service platform106may comprise any suitable combination of hardware, software, and/or firmware. In certain embodiments, service platform106may comprise any device or combination of devices that may include one or more software and/or firmware modules. In the example embodiment ofFIG.1, service platform106includes an applications server120, a softswitch server122, a resource server124, a database server126, and a web server128. AlthoughFIG.1illustrates a particular arrangement of elements of service platform106, it should be understood that the present disclosure is not limited to the precise arrangement of the example embodiment ofFIG.1. For example, althoughFIG.1illustrates an example embodiment in which applications server120, softswitch server122, resource server124, database server126, and web server128are incorporated into a single device, the present disclosure is not limited to this example embodiment. In certain embodiments, the elements of service platform106may be distributed. In certain embodiments, service platform106may contain fewer components than those illustrated in the example embodiment ofFIG.1. Additionally, in certain embodiments service platform106may contain any suitable additional components that may provide one or more of the functionalities described herein and/or additional functionality of service platform106.

Applications server120may house one or more applications used by service platform106. In certain embodiments, applications server120may provide a full suite of call center and enterprise applications. Exemplary call center and enterprise applications provided by applications server120are described in more detail below.

Softswitch server122is coupled to applications server120and resource server124. Softswitch server122may house the switching components of service platform106. For example, softswitch server122may include a softswitch. In certain embodiments, the softswitch may be a SIP-based telephony switch. The softswitch may receive inbound phone calls (e.g., from callers102) and send outgoing call requests (e.g., outbound calls from operator stations108). The softswitch may provide telephony services to, for example, IP subscribers and traditional PSTN subscribers, for example by supplying the trunking between the IP and PSTN networks. Softswitch server122may operate in tandem with applications server120, resource server124, database server126, and web server128to provide voice processing and switching resources. For example, softswitch server122may provide one or more of intelligent call routing, switch-based configurable call control, multi-lingual voice processing resources, and other suitable functionality. In certain embodiments, softswitch122may stream audio to resource server124for processing (for example, using the speech recognition functionality of resource server124, described in more detail below).

Resource server124is coupled to applications server120and softswitch server122. Resource server124may operate in tandem with one or more of applications server120, softswitch server122, database server126, and web server128to provide voice processing resources for service platform106. For example, resource server124may provide a speech recognition engine and voice resources for service platform106. Resource server124may include an automatic speech recognition (ASR) engine capable of processing voice responses, natural language processing, text-to-speech translations, and/or speech-to-text translations in connection with one or more voice-enabled functions of service platform106. In certain embodiments, resource server124can be configured to use one or more customizable grammars to match spoken phrases to, for example, directory listings. Resource server124may be configured to receive audio from softswitch server122for processing using the speech-recognition functionalities described above.

Database server126is coupled to applications server120. Database server126may store information utilized by one or more other elements of service platform106(such as applications server120, softswitch server122, resource server124, and web server128). For example, database server126may store one or more of speech-enabled intelligent scripts, intelligent scripts, scripts, prompts, information associated with a user (e.g., called or calling party), selections and data inputs from a user, recorded audio, transcripts of communication sessions, information associated with an audit trigger, speech recognition patterns, and any other suitable information. In certain embodiments, database126may use an SQL server database engine for database management, storage, and retrieval. Database server126may include memory capable of storing one or more scripts (speech-enabled intelligent scripts, intelligent scripts, and scripts), data associated with a user's response or responses, information related to previous interactions between a caller and service platform106and/or a caller and an agent, and/or any other suitable information. The memory may include any hardware, software, firmware, or combination thereof operable to store and facilitate retrieval of information. The memory may store information using any of a variety of data structures, arrangements, and/or compilations. The memory may, for example, include a dynamic random access memory (DRAM), a static random access memory (SRAM), a NAND flash memory, or any other suitable volatile or nonvolatile storage and retrieval device or combination of devices.

Data stored in database126may be accessible by multiple components of service platform106and/or operator stations108(including, for example, host112described in more detail below). For example, the data stored in database126may be accessible to one or more of applications server120, softswitch server122, resource server124, web server128, and host112. Storing data in a memory that is accessible to multiple elements of system100can prove advantageous when it is desired to subsequently access and process this information. In certain embodiments, database126may store information about one or more audit triggers. In certain embodiments, data stored in database server126can be used to populate a speech-enabled intelligent script, and intelligent script, and/or any other type of script used by applications server120and/or an agent associated with an operator station108. Populating scripts with data stored in database126can help the intelligent speech-enabled scripts (or an agent using an intelligent scripts) to interact more efficiently with a caller102. For example, populating a speech-enabled intelligent script and/or a script used by a live agent with data from database126allows the intelligent speech-enabled script or the agent or operator to review the responses previously provided, which may allow the agent to better assist a caller102. In certain embodiments, data stored in database server126can be used to perform communication session auditing.

Web server128provides the web services for service platform106. In certain embodiments, service platform106may include all or some suitable combination of the servers described above, as well as (alternatively or in addition to) other elements configured to perform desired communicating and/or computing functionality.

Each of applications server120, softswitch server122, resource server124, database server126, and web server128may comprise any suitable combination of hardware, software, and firmware. In certain embodiments, one or more of applications server120, softswitch server122, resource server124, database server126, and web server128may include processing circuitry, such as a combination of one or more of a controller, microprocessor, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software, and/or encoded logic operable to provide the functionality described herein. The processing circuitry may execute instructions stored in device readable medium or in memory to provide the functionality described herein. Applications server120, softswitch server122, resource server124, database server126, and web server128may comprise any form of volatile or non-volatile computer readable memory including, for example, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (e.g., a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and/or any other volatile, non-transitory device readable and/or computer executable memory devices that store information, data, and/or instructions that may be used by the processing circuitry. The memory may store any suitable instructions, data or information, including a computer program, software, an application including one or more of logic, rules, code, tables, etc. and/or other instructions capable of being executed by the processing circuitry to perform the various functionalities described herein. The memory may store responses written to memory by a script, such as an intelligent script or speech-enabled intelligent script. In some cases, the processing circuitry and device readable medium may be considered to be integrated.

In certain embodiments, one or more of applications server120, softswitch server122, resource server124, database server126, and web server128may run on dedicated servers. In other embodiments, one or more of applications server120, softswitch server122, resource server124, database server126, and web server128may run in a virtual server environment. Running applications server120, softswitch server122, resource server124, database server126, and web server128in a virtual server deployment may advantageously reduce the number of servers needed and provide greater flexibility in terms of redundancy and ease of deployment.

As noted above, applications server120may house one or more applications used by service platform106to provide a full suite of call center and enterprise applications. For example, applications server120may provide for ACD, such as skills-based routing ACD. This may advantageously enable service platform106to provide for functionality such as priority call routing, overflow, integral voice processing, reporting, and server-based PBX integration. In certain embodiments, applications server120may determine how incoming and/or outgoing calls should be routed, and provide instructions to softswitch server122to route calls in a particular manner.

As another example, applications server120may provide scripting functionality (e.g., intelligent scripting and/or speech-enabled intelligent scripting functionality). An intelligent script guides users through call completion steps, work flow steps, and messaging steps. Intelligent scripts can be built for call center agents, operators, and web and mobile users. Similarly, intelligent scripts guide call center agents through call completion steps. In certain embodiments, an intelligent script presents the appropriate options for each call type an agent handles, eliminating errors and reducing training time. One exemplary use of intelligent scripts is healthcare code calls. Call scripts guide agents through the specific requirements for code calls, eliminating errors, ensuring the codes are completed quickly, and self-documenting all steps taken to complete each code call.

Intelligent scripts may contain any number of elements, actions, and screens. In certain embodiments, a script designer enables an administrator (e.g., a call center administrator) to create any number of intelligent scripts. Each script may have a unique flow to present the elements, actions, and screens in the preferred order for each scenario. Branching and decision trees may be available within the scripts to customize the flow of elements based on selections, date/time, or data. In one particular non-limiting example, a script can comprise a series of queries requesting information and/or data from a user (e.g., caller102) of service platform106. In some cases, intelligent scripts may include, for example, an HTML-based script, an XML-based script, a JSON-based script, or a combination of these or other scripting formats. Intelligent scripts may comprise, for example, software, firmware, code, portions of code, data compilations, and/or a combination of these or any other type of data.

Speech-enabled intelligent scripts enable users (e.g., caller102) to interact with intelligent scripts without agent involvement. Phone users are guided through scripts using pre-recorded prompts, voice menus, and text-to-speech menus. Phone users make selections and input data (e.g., using Dual Tone—Multi Frequency (DTMF) entry or speech recognition entry). In certain embodiments, the entire intelligent script may be speech-enabled. In certain embodiments, the script designer may enable the administrator to choose which entries are to be speech-enabled. In certain embodiments, the speech-enabled intelligent script (or a section thereof) may include prompts and/or questions similar to those in the intelligent script provided to the agent had one been available. In certain embodiments, the elements and/or actions of the speech-enabled intelligent script may be the same as the intelligent script provided to the agent. In some cases, the script prompts and/or questions may be pre-configured. In other cases, the script prompts and/or questions may change dynamically based on previous call interactions.

Speech-enabling intelligent scripts may advantageously create an opportunity to have a single script that presents speech-enabled input for a portion of the script, and screen-enabled input for another portion of the script. For example, in certain embodiments portions of an intelligent script that prompt a user for protected information may be speech-enabled. In certain embodiments, the speech-enabled intelligent script and the intelligent script executed by host112are generated from a common script stored in a memory accessible to the elements of service platform106(e.g., applications server120) and operator stations108(e.g., in database server126).

In certain embodiments, applications server120provides communication session auditing functionality. For example, applications server120may be configured to monitor a communication session established between an agent (e.g., an agent associated with an operator station108) and a caller102for one or more audit triggers. The communication session may be any suitable type of communication session. As one example, the communication session may be an audio and/or video communication session (e.g., a telephone call or video conference). As another example, the communication session may be a written communication session (e.g., over text message or web chat). As still another example, the communication session may be a communication session established between a caller102and a speech-enabled intelligent script.

Applications server120may be configured to detect one or more audit triggers and, in response to detecting the one or more audit triggers, send a notification to client130. In certain embodiments, applications server may be configured to send the notification to client130without agent-intervention. For example, upon detecting the one or more audit triggers, applications server120may automatically cause a notification to be sent to client130. Such an approach may be particularly advantageous when the monitored communication session is between caller102and a speech-enabled intelligent script (which may be carried out without agent involvement). In certain embodiments, applications server120may be configured to notify an agent that one or more audit triggers have been detected. In such a scenario, the agent may initiate sending the notification to client130.

The present disclosure contemplates that applications server120may be configured to monitor for and detect a variety of audit triggers and that any suitable type of audit trigger may be used. One example of an audit trigger that may be monitored for and detected by applications server120is a response to a component of a script. As noted above, a script may comprise a series of queries requesting information and/or data from a user (e.g., caller102) of service platform106. During a communication session, a caller102may provide responses to these queries. In certain embodiments, applications server120monitors the responses from caller102and may detect a response to be an audit trigger. In certain embodiments, applications server120may use speech recognition (which, in some cases, may be provided by resource server124) to monitor responses from a caller102.

Other types of audit triggers that may be monitored and detected by applications server120may include one or more of a speech recognition pattern, a keyword, a keystroke, an agent alert, and the stress level of caller102. For example, in the case of a voice communication session applications server120may detect that either a caller102or an agent has used a particular keyword (e.g., “emergency” or “purchase”) and detect that keyword as an audit trigger. As another example, in the case of a written communication session applications server120may detect that either a caller102or an agent has written a particular word (e.g., “emergency” or “purchase”) and detect that keystroke as an audit trigger. As another example, in certain embodiments, an agent may determine that a particular communication session (e.g., one that is in process between caller102and the agent) should be audited by client130. In such a scenario, the agent may send an alert to service platform106(e.g., using a host112of an operator station108associated with the agent) indicating that the communication session should be audited. Applications server120may receive the alert and detect the alert as an audit trigger. As still another example, applications server120may be configured to monitor the stress level in caller102's voice (e.g., using speech recognition functionality of resource server124) or other detected emotional cues. For instance, applications server120may determine that the stress level of caller102's voice has increased above a threshold amount and detect the increased stress level as an audit trigger. Other speech recognition patterns that may be monitored and detected may include the volume of caller102's voice, particular keywords, or other suitable speech recognition patterns.

As described above, applications server120may be configured to send a notification to client130in response to detecting the one or more audit triggers. In certain embodiments, applications server120may be configured to send a notification to client130in response to detecting a single audit trigger. In certain embodiments, applications server120may be configured to send a notification to client when a threshold number of triggers have been detected.

The notification may include a variety of information and may take a variety of forms, both of which may vary depending on particular implementations. In certain embodiments, the notification may be one or more of a text message, an email, a push alert, and a paging message. In some cases, applications server120may cause more than one notification to be sent (e.g., a text message and an email) in order to increase the likelihood that client130receives the notification.

In certain embodiments, applications server120may determine whether to notify client130using predictive intelligence functionality. For instance, in certain embodiments database server126may be configured to store information about previous interactions with client130. The information may include, for example, information about communication sessions previously audited by client130, such as the audit triggers detected by applications server120, whether client130requested to audit the communication session after being notified by service platform106, whether client130ultimately requested to join the communication session, and information about the communication session at the time when the client requested to join the communication session. Database server126may store other suitable information about the previous interactions, including other types of call analytics such as duration, disposition, identifying information about a caller102, the type of communication session, or any other suitable information. Applications server120may be configured to use the information about previous interactions with client130(alone or in combination with other information, such as preference information for client130, which may also be stored in database server126) to self-learn and adjust as calls are processed. Applications server120employing predictive intelligence functionality may be configured to use one or more of the various information sources described above to predict a preferred behavior for subsequent calls.

For example, applications server120may determine based on information about previous interactions with client130that a notification should be sent in response to detecting a single trigger if, based on the information about previous interactions with client130, client130has always requested to audit communication sessions that have invoked that trigger. This may advantageously enable applications server120to alert client130more quickly (e.g., by not waiting to detect any other triggers). As another example, if client130has repeatedly refused to audit a communication session in response to notifications prompted by a particular trigger, applications server120may determine to not notify client130in response to detecting that trigger when it otherwise would. By using predictive intelligence functionality, applications server120may advantageously tailor the communication session auditing process to the preferences of client130.

In certain embodiments, the notification indicates one or more communication session auditing procedures available for the communication session and allows client130to select one of the available communication session auditing procedures to be used for auditing the communication session. In certain embodiments, applications server120may determine the available communication session auditing procedures prior to sending the notification. Applications server120may determine the available communication session auditing procedures based on one or more of a variety of criteria. For instance, in certain embodiments client130may set preferences for communication session auditing procedures (which may be stored in database server126) and applications server120may determine the available communication session auditing procedures based on the preferences of client130. Additionally or alternatively, applications server120may determine the available communication session auditing procedures based on the type of communication session established between caller102and the agent. For instance, certain communication session auditing procedures may be available for an audio communication session (e.g., a telephone call) that are not available for written communication sessions (e.g., communication sessions using text messages or web chat). Applications server120may determine the type of communication session established and determine the available communication session auditing procedures to be those applicable to the type of communication session established between caller102and the agent.

Exemplary communication session auditing procedures that may be used include, but are not limited to, joining client130to the communication session in real-time; streaming recorded audio of the communication session to client130; streaming a video of the GUI associated with an agent's operator station108to client130; providing a transcript of the call to client130; and converting a text conversation to audio and providing the audio to client130. These exemplary communication session auditing procedures are described in more detail below.

Applications server120may be configured to receive, from client130in response to the notification, a request to audit the communication session using at least one of the available one or more communication session auditing procedures. Application server120may be configured to perform the requested at least one communication session auditing procedure.

The present disclosure contemplates that a variety of communication session auditing procedures may be made available to client130and performed by applications server120. As one example, client130may request to be joined (e.g., connected) to the communication session between caller102and the agent in real-time. If this communication session auditing procedure is available for the communication session, the above-described notification may include a link or button displaying the text “Join The Call” (or other suitable indication that this option is available to client130). By selecting the link or button, a request to audit the communication session using this auditing procedure may be sent to service platform106and received at applications server120. In response to receiving the request, applications server120performs the requested communication session auditing procedure by joining client130to the communication session between caller102and the agent in real-time. Client130may be joined to the communication session in a variety of ways. For example, in certain embodiments applications server120(in cooperation with softswitch server122) may join client130in the communication session so that client130can immediately participate in the call between a caller102and an agent.

As another example, client130may request that service platform106stream recorded audio of the communication session to client130. In certain embodiments, applications server120(alone or in combination with one or more of softswitch server122and resource server124) may be configured to record audio associated with a communication session (e.g., beginning when the communication session is established between caller102and an agent). If this communication session auditing procedure is available for the communication session, the above-described notification may include a link or button displaying the text “Stream Call Audio” (or other suitable indication that this option is available to client130). By selecting the link or button, a request to audit the communication session using this auditing procedure may be sent to service platform106and received at applications server120. In response to receiving the request, applications server120performs the requested communication session auditing procedure by streaming recorded audio of the call to client130. In certain embodiments, the notification may include a portion of the recorded audio. With this approach, client130is advantageously able to listen to the content of the communication session without having to immediately join the call. Client130may listen to the portion of the recorded audio and determine whether or not to audit the call further. If client130decides to audit the call and requests this auditing procedure, applications server120may stream the remainder of the recorded audio to client130.

As another example, client130may request that service platform106stream a video of the content displayed on a GUI associated with the agent's operator station108. As noted above, the communication session between caller102and the agent may be guided by a script presented to the agent on a GUI (e.g., a GUI of host112of operator station108). The script may include prompts and associated responses that are populated as the communication session progresses. In certain embodiments, host112of an operator station108(or another suitable element of service platform106, such as applications server120) may be configured to record a video of the script displayed on the agent's GUI. If this communication session auditing procedure is available for the communication session, the above-described notification may include a link or button displaying the text “View Script Concurrently With Agent” (or other suitable indication that this option is available to client130). By selecting the link or button, a request to audit the communication session using this auditing procedure may be sent to service platform106and received at applications server120. In response to receiving the request, applications server120performs the requested communication session auditing procedure by streaming a video of the content displayed on the GUI associated with the agent's operator station108(e.g., the script prompts and associated responses) to client130. This approach to communication session auditing advantageously allows client130to view the script concurrently with the agent, monitor the agent's progress through the script, and view the client's responses without having to join the communication session.

As another example, client130may request a transcript of the communication session. If this communication session auditing procedure is available for the communication session, the above-described notification may include a link or button displaying the text “View Transcript” (or other suitable indication that this option is available to client130). By selecting the link or button, a request to audit the communication session using this auditing procedure may be sent to service platform106and received at applications server120. In response to receiving the request, applications server120performs the requested communication session auditing procedure by sending a transcript of the communication session to the client. Applications server120may generate the transcript in a variety of ways. For example, if there is audio associated with the communication session (e.g., the communication session is a telephone call), applications server120may be configured to convert audio associated with a communication session to text and generate a transcript of the communication session. Applications server120may utilize speech-to-text recognition functionality (e.g., speech-to-text functionality of resource server124) to convert the audio associated with the communication session to text. As another example, if there is no audio associated with the communication session (e.g., the communication session is over text message or web chat) then applications server120may forward the text associated with the communication session. Such an approach to communication session auditing may advantageously enable client130to audit the communication session even in circumstances that do not permit client130to listen to audio associated with a communication session. In certain embodiments, the transcript may be provided in real-time to client130(e.g., audio may be converted to text and sent to the client as it is received). In certain embodiments, applications server120may send a transcript of a completed communication session to client130. With this approach, client130may advantageously be able to audit a call at a later time (for example, where the client could not audit the call at the time the notification was received).

As another example, client130may request that a written communication session be converted to an audio recording. As noted above, some communication sessions may be written (e.g., over text message or through web chat). Applications server120may be configured to convert the associated written messages to audio (e.g., using text-to-speech functionality of resource server124). If this communication session auditing procedure is available for the communication session, the above-described notification may include a link or button displaying the text “Listen to Text” (or other suitable indication that this option is available to client130). By selecting the link or button, a request to audit the communication session using this auditing procedure may be sent to service platform106and received at applications server120. In response to receiving the request, applications server120performs the requested communication session auditing procedure by converting text associated with the communication session to audio and sending the audio to client130. Such an approach may be advantages in circumstances where client130wishes to audit the communication session but is unable to read a transcript (e.g., if client130is driving and receiving the above-described notification on a mobile device).

As is evident from the above, certain of the communication session auditing methods described herein may advantageously enable client130to audit a communication session without joining the communication session immediately. For example, client130may request that recorded audio of the communication session be streamed to client130, that a video of the GUI associated with an agent's station be streamed to client130, that a transcript of the call be provided to client130, or that text associated with the communication session be converted to audio and provided to client130. As client130is auditing the communication session using one of the above-described communication session auditing procedures, it may become apparent to client130that client130should join the communication session established between caller102and the agent. Accordingly, in certain embodiments applications server120may be configured to provide client130with an option to join the communication session when one of these auditing procedures has been requested by client130. For example, applications server120may deliver the requested audio, video, or transcript together with a link or button displaying the text “Join The Call” or, for other types of communication sessions, “Join the Chat” (or other suitable indication that this option is available to client130for a particular type of communication session). By selecting the link or button, a request to join the call may be sent to service platform106and received at applications server120. In response to receiving the request, applications server120joins client130in the communication session in real-time (e.g., as described above).

In certain embodiments, applications server120may be configured to automatically join client130in the communication session. For instance, applications server120may be configured to continue monitoring the communication session for one or more additional triggers after client130has requested to audit the communication session. These additional triggers may be the same or a different set of triggers as the one or more audit triggers previously described. Information about the one or more additional triggers may be stored in database server126. In response to detecting one or more additional triggers (e.g., a component of a script, a speech recognition pattern, a keyword, a keystroke, an agent alert, or other suitable trigger), applications server120may be configured to automatically join client130in the communication session (e.g., without agent or client intervention).

In certain embodiments, applications server120may use predictive intelligence functionality to determine whether to automatically join client130in the communication session using predictive intelligence functionality. As described above, applications server120may store a variety of information relating to previous interactions with, and/or preferences of, client130. Applications server120may be configured to use the information about previous interactions with client130(alone or in combination with other information, such as preference information for client130) to self-learn and adjust as calls are processed. Applications server120employing predictive intelligence functionality may be configured to use one or more of the various information sources described above to predict a preferred behavior for subsequent calls. For example, application server120may determine from the information about previous interactions with client130that client130has, while auditing previous communication sessions, requested to join a communication session after certain words or phrases have been used in the communication session. Based on this information, applications server120may recognize those words and/or phrases as additional triggers in subsequent communication sessions and automatically join client130into the communication session in response to detecting those words and/or phrases.

Additionally, applications server120may provide various voice services (alone or in combination with, for example, one or more of softswitch server122and resource server124). For instance, applications server120may provide call center functions such as playing greetings to callers with multi-level navigation menus, playing automated call queuing announcements, playing automated agent greetings, automated call recording and playback, and other suitable functions. In certain embodiments, applications server120may provide for automated outbound phone calls (e.g., calls to one or more of callers102) with messages played using integrated text-to-speech.

Other examples of services that service platform106provides may include (but are not limited to): call routing; call monitoring; database driven scripted messages (including intelligent speech-enabled scripts described above); call recording; directory services; status, event, on-call, and workforce scheduling tools; and event-driven statistical and analytical reporting for console operators as well as enterprise web users.

It should be appreciated that although certain functions of applications server120have been described above, these functions are described for purposes of example only. The present disclosure is not limited to the example embodiments described herein. In practice, applications server120may provide only a subset of the above-described functions, and in some cases applications server120may provide other suitable functionality for service platform106.

Although certain exemplary embodiments have been described above in the context of handling an incoming telephone call, text message, or web chat received at a call center from caller102, the present disclosure is not limited to these example embodiments. Rather, the present disclosure contemplates that the various embodiments described herein may be applied to outgoing communications (e.g., telephone calls, text messages, or web chats) initiated at the call center and directed to caller102. Additionally, the various embodiments described herein are not limited to the exemplary forms of communication described and may be applied to other forms of communication. For example, the various embodiments described herein may be applied to multimedia communications (including, but not limited to, texting, chatting, and video communications). According to one example embodiment, a communication session may be established over a network, such as network104, capable of delivering real-time audio and/or video media over IP networks via streaming without requiring an intermediary or third-party software, such as RTP and/or WebRTC. According to another example embodiment, a caller102may establish a communication session with an agent (e.g., an agent associated with a host112described above) using one of the above-described exemplary forms of multimedia communication or another suitable form of communication. In such a scenario, the called number may be an IP address, uniform resource locator (URL) or other information used to establish a multimedia communication session between the user and the agent. The communication session may be handled in accordance with the principles of the various embodiments described herein.

For instance, in certain embodiments a caller102may visit a web site associated with a company utilizing a call center including service platform106described above. In some cases, the web site may include a “Contact Us” button or other suitable mechanism to enable the user to initiate a communication session with an agent (e.g., via one of the forms of multimedia communication described above). As an alternative, the web site may include an automated prompt presented to the user to enable the user to establish a communication session with the agent (e.g., a chat, text, or video conversation). It should be understood, however, that other forms of establishing the communication session between caller102and an agent may be used.

FIG.2is an exemplary signal flow for auditing a communication session, in accordance with certain embodiments. In particular,FIG.2illustrates an exchange of signals among a caller102, service platform106, operator station108, and client130. At step202, caller102initiates a call by sending a call request204that is routed to service platform106. For example, caller102may initiate a call to a call center running service platform106. At step206, service platform106establishes a communication session210between caller102and an agent associated with an operator station108. In particular, service platform106sends a call request208to operator station108to establish communication session210.

At step212, service platform106monitors the communication session for one or more audit triggers, for example as described above in relation toFIG.1. At step214, service platform106detects one or more audit triggers. As described above in relation toFIG.1, in certain embodiments the one or more audit triggers may comprise at least one of a response to a component of a script, a speech recognition pattern, a keyword, a keystroke, and an agent alert. In certain embodiments, the one or more audit triggers may comprise the stress level of caller102's voice.

In response to detecting the one or more audit triggers at step214, service platform106sends notification216to client130. In certain embodiments, notification216may comprise one or more of a text message, an email, a push alert, and a paging message. As described above in relation toFIG.1, notification216identifies one or more communication session auditing procedures available for communication session210. As described above in relation toFIG.1, service platform106may determine the one or more communication session auditing procedures to include in notification216based on one or more suitable criteria. For example, in some cases service platform106may determine the one or more communication session auditing procedures to include in notification216based on the type of communication session established between caller102and operator station108. As another example, service platform may determine the one or more communication session auditing procedures to include in notification216based on one or more preferences of client130(e.g., one or more preferences stored in database server126).

At step220, service platform106receives, from client130in response to notification212, a request218to audit the communication session using at least one of the available one or more communication session auditing procedures. At step220, service platform106performs the requested at least one communication session auditing procedure. For example, service platform106may perform one or more of the communication session auditing procedures described above in relation toFIG.1or below in relation toFIGS.3-5.

FIG.3is a flow diagram of an exemplary method for auditing a communication session, in accordance with certain embodiments. In certain embodiments, the method may be performed by a call center service platform (e.g., service platform106described above in relation toFIG.1above). The method begins at step302, where a communication session is established between an agent and at least one of a caller and a called party. At step304, the communication session is monitored for one or more audit triggers. In certain embodiments, the one or more audit triggers may comprise at least one of: a response to a component of a script; a speech recognition pattern; a keyword; a keystroke; and an agent alert. In certain embodiments, the one or more audit triggers may comprise the stress level of a caller's voice.

At step306, one or more audit triggers are detected. At step308, in response to detecting the one or more audit triggers, a notification is sent to a client. In certain embodiments, the notification identifies one or more communication session auditing procedures available for the communication session. In certain embodiments, the notification may comprise one or more of: a text message; an email; a push alert; and a paging message.

At step310, a request to audit the communication session using at least one of the available one or more communication session auditing procedures is received from the client in response to the notification. At step312, the requested at least one communication session auditing procedure is performed.

In certain embodiments, the method may comprise, in response to establishing the communication session, recording audio associated with the communication session.

In certain embodiments, the notification may comprise a portion of the recorded audio associated with the communication session. The request to audit the communication session may comprise a request to stream a remainder of the recorded audio associated with the communication session. Performing the requested at least one communication session auditing procedure may comprise streaming the recorded audio associated with the communication session to the client. In certain embodiments, the method may further comprise receiving, from the client, a request to join the communication session and joining the client in the communication session.

In certain embodiments, the request to audit the communication session may comprise a request to receive a transcript of the communication session. The method may further comprise converting the recorded audio associated with the communication session to text, generating a transcript of the communication session, and sending the transcript of the communication session to the client.

In certain embodiments, the communication session may be guided by a script. The script may be presented to the agent on a graphical user interface of a station associated with the agent. The script may comprise at least one prompt and a response associated with the at least one prompt. The request to audit the communication session may comprise a request to view the script concurrently with the agent. The method may further comprise streaming a video of the script presented to the agent on the graphical user interface to the client in response to the request to view the script concurrently with the agent.

FIG.4is a flow diagram of an exemplary process for auditing a communication session, in accordance with certain embodiments. At block402, a service platform (e.g., in a call center) establishes a communication session between an agent and at least one of a caller and a called party. At block404, in response to establishing the communication session, the service platform records audio associated with the communication session.

At block406, the service platform monitors the communication session for one or more audit triggers. In certain embodiments, the one or more audit triggers may comprise at least one of a response to a component of a script, a speech recognition pattern, a keyword, a keystroke, and an agent alert. In certain embodiments, the one or more audit triggers may comprise the stress level of a caller's voice. In certain embodiments, the service platform may use a voice recognition engine to evaluate speech recognition patterns, keywords, and stress levels.

At block408, the service platform detects the one or more audit triggers. At block410, in response to detecting the one or more audit triggers, the service platform sends a notification to a client, the notification identifying one or more communication session auditing procedures available for the communication session. In the exemplary process ofFIG.4, the notification comprises a portion of the recorded audio associated with the communication session. In certain embodiments, the notification may be one of a text message, an email, a push alert, and a paging message. In certain embodiments, more than one notification may be sent (e.g., to different devices and/or addresses associated with the client).

At block412, the service platform receives, from the client in response to the notification, a request to audit the communication session using at least one of the available one or more communication session auditing procedures. In the exemplary embodiment ofFIG.4, the request to audit the communication session comprises a request to stream a remainder of the recorded audio associated with the communication session.

At block414, the service platform performs the requested at least one communication session auditing procedure. In the exemplary embodiment ofFIG.4, the service platform streams the remainder of the recorded audio associated with the communication session to the client. In certain embodiments, the service platform receives, from the client, a request to join the communication session at block416. In certain embodiments, at block418, the service platform joins the client in the communication session.

FIG.5is a flow diagram of another exemplary process for auditing a communication session, in accordance with certain embodiments. The process ofFIG.5begins in an analogous manner to that described above in relation toFIG.4. More particularly, the process ofFIG.5begins at block502, where a service platform establishes a communication session between an agent and at least one of a caller and a called party. In the exemplary embodiment ofFIG.5, the service platform, in response to establishing the communication session, records audio associated with the communication session at block504.

At block506, the service platform monitors the communication session for one or more audit triggers. In certain embodiments, the one or more audit triggers may comprise at least one of a response to a component of a script, a speech recognition pattern, a keyword, a keystroke, and an agent alert. In certain embodiments, the one or more audit triggers may comprise the stress level of a caller's voice. In certain embodiments, the service platform may use a voice recognition engine to evaluate speech recognition patterns, keywords, and stress levels.

At block508, the service platform detects the one or more audit triggers. In response to detecting the one or more audit triggers, the service platform sends a notification to a client at block510. The notification identifies one or more communication session auditing procedures available for the communication session. In certain embodiments, the notification may comprise one or more of a text message, an email, a push alert, and a paging message. At block512, the service platform receives, from the client in response to the notification, a request to audit the communication session using at least one of the available one or more communication session auditing procedures. In the exemplary embodiment ofFIG.5, the request to audit the communication session comprises a request to receive a transcript of the communication session.

At block514, the service platform performs the requested at least one communication session auditing procedure. In the exemplary embodiment ofFIG.5, the service platform converts the recorded audio associated with the communication session to text. In certain embodiments, the service platform may use a speech recognition engine (e.g., a speech recognition engine of resource server124described above in relation toFIG.1) to perform speech-to-text translations of the communication session to convert the recorded audio associated with the communication session to text. At block516, the service platform generates a transcript of the communication session. At block518, the service platform sends the transcript of the communication session to the client.

Modifications, additions, or omissions may be made to the systems and apparatuses described herein without departing from the scope of the disclosure. The components of the systems and apparatuses may be integrated or separated. Moreover, the operations of the systems and apparatuses may be performed by more, fewer, or other components. Additionally, operations of the systems and apparatuses may be performed using any suitable logic comprising software, hardware, and/or other logic. As used in this document, “each” refers to each member of a set or each member of a subset of a set.

Modifications, additions, or omissions may be made to the methods described herein without departing from the scope of the disclosure. The methods may include more, fewer, or other steps. Additionally, steps may be performed in any suitable order.

Although this disclosure has been described in terms of certain embodiments, alterations and permutations of the embodiments will be apparent to those skilled in the art. Accordingly, the above description of the embodiments does not constrain this disclosure. Other changes, substitutions, and alterations are possible without departing from the spirit and scope of this disclosure, as defined by the following claims.