Call state control and multi-call system based on state machine

Through the call status control and multi-call system based on state machine, the problem of inefficiency in the face of a large number of customers to be collected and products promoted is solved, and precise control and dynamic adjustment of customer and agent status is achieved, which significantly improves the operational efficiency and service quality of the call center.

CN119728860APending Publication Date: 2025-03-28重庆富民银行股份有限公司
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411984201.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-31
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

The traditional one-to-one calling model seems unscrupulous when facing a large number of customers to be collected and products to be promoted, and the existing call framework is difficult to meet the needs of customized services and lacks an effective agent allocation algorithm.

Method used

The call state control and multi-call system based on state machine are adopted, including communication modules, state machine management modules, model application modules, policy management modules and agent management modules. Through asynchronous communication, state machine management, queuing theory model application and policy management, precise control and dynamic adjustment of customer and agent status are achieved.

Benefits of technology

It significantly improves the operational efficiency of the call center, and can make multiple customer calls at one time, automatically transfer customers to idle seats, improve collection and sales efficiency, increase the number of out-of-call calls on seats by about three times, reduce the waiting time of customers, and improve service quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728860A_ABST
    Figure CN119728860A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of communication interaction, in particular to a call state control and multi-call system based on a state machine. Comprising a communication module which is used for carrying out asynchronous network communication with a FreeSWITCH and interacting with the FreeSWITCH by defining a message protocol; the state machine management module is used for updating the states of the client and the seat according to the event returned by the FreeSWITCH; the model application module is used for calculating the number of seats capable of reaching the optimal seat service level in real time through a queuing theory model and dynamically adjusting the number; the strategy management module is used for configuring a dialing strategy and storing strategy information in a database for other modules to call; and the agent management module is used for managing the state of the agent, realizing the functions of monitoring the state of the agent and making a call through interaction between the communication module and the FreeSWITCH, and providing an interface interacted with the model application module to obtain statistical ticket data. The technical scheme can improve the operation efficiency of the call center.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of communication interaction technology, and in particular to a state machine-based call state control and multi-call system. Background Art

[0002] With the rapid development of the financial industry, banks have frequently launched diversified loan products to meet the needs of different customers in order to improve their business competitiveness and market share. However, this trend has also brought new problems: after a customer successfully obtains a loan, if the customer fails to repay the loan on time due to forgetfulness or deliberate default, the bank needs to invest a lot of human resources in telephone collection. The traditional collection method, that is, the one-to-one call model, seems to be unable to cope with the growing list of customers to be collected. At the same time, with the expansion of the scale of banks and the increase in loan products, the seats are also faced with a growing list of customers to promote products, which further exacerbates the contradiction between the traditional call model and business needs.

[0003] In order to alleviate this contradiction, banks urgently need to innovate and optimize the traditional one-to-one calling model. The ideal solution should support calling multiple customers at one time, and automatically transfer the connected customers to idle seats through efficient algorithms, thereby improving the efficiency of collection and sales. However, the basis for achieving this goal lies in the precise control of the status of customers and seats. Only by fully mastering the status of both can the work efficiency of seats and collection personnel be effectively improved.

[0004] Although existing open source call frameworks involve call status control to some extent, most of these frameworks are developed based on C language, which is not friendly to Java developers and has high difficulty in secondary development. In addition, these frameworks often fail to meet the needs of business customization, limiting their flexibility in practical applications.

[0005] In terms of seat allocation algorithms, the current market also lacks an excellent algorithm that can effectively combine mathematical models with seat allocation needs. Traditional allocation methods are often based on experience or simple rules, which are difficult to accurately reflect the operating status of the call center in real time, resulting in waste or shortage of seat resources. Summary of the invention

[0006] The purpose of the present invention is to propose a call state control and multi-call system based on a state machine, and the technical solution can improve the operational efficiency of a call center.

[0007] To achieve the above objectives, the present disclosure provides a state machine-based call state control and multi-call system, including: The communication module is used to communicate with FreeSWITCH asynchronously over the network. It interacts with FreeSWITCH by defining a message protocol, including sending dial commands, monitoring phone lifecycle events, and receiving results returned by FreeSWITCH. The state machine management module is used to maintain the state machines of customers and agents, and update the status of customers and agents according to the events returned by FreeSWITCH; Model application module, used to calculate the number of seats that can achieve the best seat service level in real time through the queuing theory model, and adjust it dynamically; The policy management module is used to configure the dialing policy and store the policy information in the database for other modules to call; The agent management module is used to manage the agent status. It interacts with FreeSWITCH through the communication module to realize the agent status monitoring and phone dialing functions, and provides an interface with the model application module to obtain statistical call data.

[0008] Beneficial effects of the basic solution: The communication module significantly improves the system's response speed and throughput through asynchronous communication, reduces communication delays, and ensures smoother interaction with FreeSWITCH.

[0009] The state machine management module can update the status information of customers and agents in real time, helping the system to understand the current operation status of the call center more accurately.

[0010] The model application module can evaluate current call demand in real time and realize dynamic adjustment of the number of seats through the system interface, thereby enhancing the system's adaptability and response speed to optimize service levels and improve customer satisfaction.

[0011] The policy management module can define dialing policies according to actual needs, such as the number of customers dialed at one time, the timeout hang-up time, etc., which improves the flexibility of the system and the level of personalized service.

[0012] The agent management module can fully monitor the agent status, including online, offline, and calling customers, ensuring the effective use of agent resources. It obtains data such as the average time for agents to handle calls through the interface, providing decision support for the model application module, and realizing real-time monitoring of agent status and phone dialing functions.

[0013] Through the collaborative work of various modules, it provides strong support for the efficient operation of the call center, realizes batch dialing, can significantly increase the number of outbound calls of the seats, generally increased by about three times, can increase the bank's loan amount and repayment amount. By introducing the queuing theory model into the process of allocating seats, by dynamically monitoring the average time for seats to handle calls and the average interval time for customers to arrive, the number of seats corresponding to different projects can be dynamically allocated, reducing the waiting time of customers and improving the service quality of the seats.

[0014] As an implementable preferred solution, the communication module adopts the ChannelPipeline mechanism of the Netty framework to encapsulate different message processing logics into different Handlers to implement message encoding and decoding and business logic processing.

[0015] As an implementable preferred solution, the state machine management module updates the status by monitoring the events transmitted by the communication module. The customer and agent status include waiting to dial, dialing request, dialing, bridging, talking, and hanging up. The agent also includes online and offline status.

[0016] As an implementable preferred solution, the model application module is implemented in Java language and uses a mathematical library for calculation; The model application module obtains the average interval time between customer arrivals and the average time for agents to handle calls through the state machine management module; uses the queuing theory model to calculate the number of agents that can achieve the best agent service level; and dynamically adjusts the number of agents through the system interface.

[0017] As an implementable preferred solution, the policy management module is developed using the Spring Boot framework, the database uses MySQL, and a RESTful API interface is provided for the front end or other system calls.

[0018] As an implementable preferred solution, the agent management module is implemented in Java language, uses Netty framework for network communication, and manages the agent's dialing tasks through a thread pool.

[0019] As an implementable optimal solution, the state machine management module is used to obtain the ringing duration and connection duration of each call, analyze the call data to obtain the answering rate, service rate, and the number of seats in the bank call center, and real-time statistics of service intensity, average waiting time, and average queue length, and display these indicators through a graphical interface.

[0020] As an implementable preferred solution, service intensity The calculation formula is as follows:

[0021] By service strength Indicates the system load level; Average waiting time The calculation formula is as follows:

[0022] By average waiting time Indicates the average time a customer has to wait before their call is answered; Average queue length The calculation formula is as follows:

[0023] By average queue length Indicates the average number of customers waiting to be served; in, Indicates the answering rate, represents the service rate, Indicates the number of seats in the bank's call center.

[0024] As an implementable preferred solution, it also includes a data management module for data caching and distributed deployment, using Redis to implement data caching and distributed lock functions, and using Spring Cloud to implement load balancing and fault recovery mechanisms. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] Figure 1 The diagram is a call state control and multi-call system architecture diagram based on a state machine.

[0026] Figure 2 This is a logical diagram of the multi-call process.

[0027] Figure 3 Assign schematic diagrams to project seat pools. DETAILED DESCRIPTION

[0028] In order to make the technical solution and advantages of the present application clearer, the technical solution of the present invention will be further described in detail below in conjunction with the accompanying drawings. It will be understood that the specific embodiments described herein are only partial embodiments of the present invention, which are only used to explain the present application, rather than to limit the present application. It should be noted that the technical features or combinations of technical features described in the following embodiments should not be considered isolated, and they can be combined with each other to achieve better technical effects. The same reference numerals appearing in the drawings of the following embodiments represent the same features or components, which can be applied to different embodiments.

[0029] In addition, unless otherwise defined, the technical terms or scientific terms used in the description of the present invention should have the common meanings understood by those skilled in the art in the art to which the present invention belongs.

[0030] The present invention is further described in detail below in conjunction with the accompanying drawings: Reference Figure 1 A call state control and multi-call system based on a state machine includes a communication module, a state machine management module, a model application module, a strategy management module, an agent management module, and a data management module.

[0031] The communication module is used to communicate between the system and FreeSWITCH (an open source multi-platform software switch), and implements asynchronous, high-performance network communication through the Netty framework. Specifically, the communication module interacts with FreeSWITCH by defining a series of message protocols, including sending dial commands, monitoring phone life cycle events (such as create events, answer events, bridge events, hangup events, etc.), and receiving results returned by FreeSWITCH. In this embodiment, the control of the life cycle of each call is asynchronously executed and asynchronously picked up.

[0032] The communication module adopts the ChannelPipeline mechanism of the Netty framework to encapsulate different message processing logics into different Handlers to implement message encoding and decoding, business logic processing, etc.

[0033] The state machine management module is used to maintain the state machine of customers and agents, and update the status of customers and agents according to the events returned by FreeSWITCH. Specifically, the state machine management module defines various states of customers and agents (such as waiting to dial, dialing request, dialing, bridging, talking, hanging up, etc.), and updates the status by monitoring the events from the communication module.

[0034] The state machine management module is designed using the state pattern. Each state corresponds to a state class, which contains the logic of state transfer. When an event occurs, the state machine management module calls the corresponding state class method according to the current state to achieve state transfer. The state machine management module can accurately obtain the real-time status of each call, and can count the average interval between customers answering calls and the average time for agents to handle each call in real time, providing an accurate data basis for the queuing theory model.

[0035] The model application module is used to calculate and dynamically adjust the number of seats in real time according to the queuing theory model to optimize the service level of the seats. Specifically, the model application module first obtains data such as the average interval time between customer arrivals and the average time for the seats to handle calls through the state machine management module, and then calculates the number of seats that can achieve the best service level of the seats using the queuing theory model, and finally dynamically adjusts the number of seats through the system interface. In this embodiment, the M / M / c queuing model is selected.

[0036] The model application module is implemented in Java and uses a mathematical library (such as Apache Commons Math) for calculations. At the same time, the model movement module also provides an interface with the seat management system to dynamically adjust the number of seats.

[0037] The policy management module is used to customize the dialing policy, including the number of customers dialed at one time, the timeout hang-up time, etc.

[0038] Specifically, the policy management module provides a graphical interface or API interface for custom configuration of dialing policies. After the configuration is completed, the policy management module stores the policy information in a database for other modules to call.

[0039] The policy management module is developed using the Spring Boot framework and the database uses MySQL. The module provides a RESTful API interface for the front end or other systems to call.

[0040] The agent management module is used to manage the agent status, including online, offline, and customer phone calls. The specific agent management module interacts with FreeSWITCH through the communication module to realize the monitoring of agent status and phone call dialing functions. At the same time, the module also provides an interface with the model application module to obtain call data, including the average time for agents to handle calls and the average interval time for customers to answer calls.

[0041] The agent management module is implemented in Java and uses the Netty framework for network communication. The module manages the agent's dialing tasks through a thread pool to ensure efficient and stable operation.

[0042] The data management module is used for data caching and distributed deployment. Specifically, the data caching and distributed deployment module uses Redis to implement data caching and distributed lock functions to ensure that the system can still run stably in high-concurrency scenarios. At the same time, the module also provides load balancing and fault recovery mechanisms to ensure the availability and stability of the system.

[0043] The data management module is developed using open source frameworks such as Redis and Spring Cloud. Redis is used to cache data and implement distributed locks; Spring Cloud provides microservice governance functions such as load balancing, service registration and discovery, and fuses. Using redis as the data cache middleware can ensure the performance of the entire outbound call process. At the same time, the distributed architecture deployment can improve the tps and stability of the entire multi-call system on the basis of high availability, and support a large number of seats to use at the same time.

[0044] Reference Figure 2,The specific steps of this system are as follows: Start the communication module and establish a connection with FreeSWITCH. Load the dialing strategy configured in the policy management module. Initialize the state machine management module and define the initial state of the customer and the agent. Start the data management module and configure middleware such as Redis.

[0045] The agent triggers the online operation through the front-end page or API interface. After receiving the online request, the agent management module sends a dial command to FreeSWITCH through the communication module to try to establish a telephone connection with the agent. When FreeSWITCH returns a dial success event (such as an answer event), the state machine management module updates the agent status to online ready.

[0046] The policy management module configures the dialing strategies such as the number of customers to be dialed at one time and the timeout hang-up time. According to the dialing strategy, the list of customers to be dialed is obtained from the database. The agent management module sends batch dialing commands to FreeSWITCH through the communication module. The state machine management module monitors the events returned by FreeSWITCH (such as create events, answer events, bridge events, hangup events, etc.) and updates the customer status.

[0047] When the customer's call is connected (that is, FreeSWITCH returns the answer event), the state machine management module updates the customer's state to bridging.

[0048] Reference Figure 3 ,The model application module calculates the number of agents that can achieve the best agent service level based on the current average ,interval time between customer arrivals and the average time for agents to handle calls.

[0049] The agent management module allocates idle seats in the current project to waiting customers from the project agent pool according to the calculation results of the queuing theory model application module. The agent management module sends a bridge command to FreeSWITCH through the communication module to transfer the customer's call to the assigned seat. The state machine management module monitors the bridge event returned by FreeSWITCH and updates the status of the agent and customer to connected.

[0050] When the call ends (i.e. FreeSWITCH returns the hangup event), the state machine management module updates the agent and customer status to hang up. The agent management module calls the agent again until the agent status changes to online ready, waiting for the next customer call transfer.

[0051] The model application module calculates the agent service level regularly or in real time, and dynamically adjusts the number of seats in the project agent pool based on the calculation results. When adjusting the number of seats, the agent management module interacts with the agent management system through the system interface to increase or decrease the number of seats.

[0052] The state machine management module is used to obtain call data such as the ringing duration and connection duration of each call. By analyzing the previous call data, the following indicator data is obtained: Answering rate , the average time between calls answered by customers; Service Rate , the average time that agents spend handling calls; Number of seats in bank call centers .

[0053] Based on the indicator data, real-time statistics of service intensity, average waiting time, average queue length and other indicators are displayed through a graphical interface.

[0054] Service Strength The calculation formula is as follows:

[0055] By service strength Indicates the system load level. Ideally, it should be less than 1 to avoid system overload.

[0056] Average waiting time The calculation formula is as follows:

[0057] By average waiting time Indicates the average time a customer has to wait before their call is answered.

[0058] Average queue length The calculation formula is as follows:

[0059] By average queue length Indicates the average number of customers waiting to be served.

[0060] The above contents are only embodiments of the present invention. The common sense such as the known specific structures and characteristics in the scheme is not described in detail here. The ordinary technicians in the relevant field know all the common technical knowledge in the technical field to which the invention belongs before the application date or the priority date, can obtain all the existing technologies in the field, and have the ability to apply the conventional experimental means before that date. The ordinary technicians in the relevant field can improve and implement this scheme in combination with their own abilities under the enlightenment given by this application. Some typical known structures or known methods should not become obstacles for the ordinary technicians in the relevant field to implement this application. It should be pointed out that for the technicians in this field, without departing from the structure of the present invention, several deformations and improvements can be made, which should also be regarded as the protection scope of the present invention, which will not affect the effect of the implementation of the present invention and the practicality of the patent. The protection scope required by this application shall be based on the content of its claims, and the specific implementation methods and other records in the specification can be used to explain the content of the claims.

Claims

1. A call state control and multi-call system based on a state machine, characterized in that: include: The communication module is used to communicate with FreeSWITCH asynchronously over the network. It interacts with FreeSWITCH by defining a message protocol, including sending dial commands, monitoring phone lifecycle events, and receiving results returned by FreeSWITCH. The state machine management module is used to maintain the state machines of customers and agents, and update the status of customers and agents according to the events returned by FreeSWITCH; Model application module, used to calculate the number of seats that can achieve the best seat service level in real time through the queuing theory model, and dynamically adjust it; The policy management module is used to configure the dialing policy and store the policy information in the database for other modules to call; The agent management module is used to manage the agent status. It interacts with FreeSWITCH through the communication module to realize the agent status monitoring and phone dialing functions, and provides an interface for interacting with the model application module to obtain statistical call data.

2. A call state control and multi-call system based on a state machine according to claim 1, characterized in that: The communication module adopts the ChannelPipeline mechanism of the Netty framework to encapsulate different message processing logics into different Handlers to implement message encoding and decoding and business logic processing.

3. A call state control and multi-call system based on a state machine according to claim 1, characterized in that: The state machine management module updates the status by monitoring the events transmitted by the communication module. The customer and agent status include waiting to dial, dialing request, dialing, bridging, talking, and hanging up. The agent also includes online and offline status.

4. A call state control and multi-call system based on a state machine according to claim 3, characterized in that: The model application module is implemented in Java language and uses mathematical libraries for calculations; The model application module obtains the average interval time between customer arrivals and the average time for agents to handle calls through the state machine management module; uses the queuing theory model to calculate the number of agents that can achieve the best agent service level; and dynamically adjusts the number of agents through the system interface.

5. The call state control and multi-call system based on a state machine according to claim 1, characterized in that: The policy management module is developed using the Spring Boot framework, the database uses MySQL, and a RESTful API interface is provided for the front end or other system calls.

6. A call state control and multi-call system based on a state machine according to claim 1, characterized in that: The agent management module is implemented in Java language, uses Netty framework for network communication, and manages the agent's dialing tasks through a thread pool.

7. A call state control and multi-call system based on a state machine according to claim 1, characterized in that: The state machine management module is used to obtain the ringing duration and connection duration of each call, analyze the call data to obtain the answering rate, service rate, and number of seats in the bank call center, and to collect real-time statistics on service intensity, average waiting time, and average queue length, and display these indicators through a graphical interface.

8. A call state control and multi-call system based on a state machine according to claim 7, characterized in that: Service Strength The calculation formula is as follows: By service strength Indicates the system load level; Average waiting time The calculation formula is as follows: By average waiting time Indicates the average time a customer has to wait before their call is answered; Average queue length The calculation formula is as follows: By average queue length Indicates the average number of customers waiting to be served; in, Indicates the answering rate, represents the service rate, Indicates the number of seats in the bank's call center.

9. A call state control and multi-call system based on a state machine according to claim 8, characterized in that: It also includes a data management module for data caching and distributed deployment, using Redis to implement data caching and distributed lock functions, and using Spring Cloud to implement load balancing and fault recovery mechanisms.