CN113225439A - Automatic call distribution method, device, electronic equipment and storage medium - Google Patents

Automatic call distribution method, device, electronic equipment and storage medium Download PDF

Info

Publication number
CN113225439A
CN113225439A CN202110528772.2A CN202110528772A CN113225439A CN 113225439 A CN113225439 A CN 113225439A CN 202110528772 A CN202110528772 A CN 202110528772A CN 113225439 A CN113225439 A CN 113225439A
Authority
CN
China
Prior art keywords
index
linked list
seat
node
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110528772.2A
Other languages
Chinese (zh)
Inventor
彭勇
曹瑞生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jingxing Information Technology Co ltd
Original Assignee
Shanghai Jingxing Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jingxing Information Technology Co ltd filed Critical Shanghai Jingxing Information Technology Co ltd
Priority to CN202110528772.2A priority Critical patent/CN113225439A/en
Publication of CN113225439A publication Critical patent/CN113225439A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/523Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing with call distribution or queueing
    • H04M3/5232Call distribution algorithms

Abstract

The application relates to an automatic call distribution method, an automatic call distribution device, electronic equipment and a storage medium, wherein the method comprises the following steps: when any seat is detected to be changed from an occupied state to an idle state, acquiring attribute information corresponding to any seat; determining weight information corresponding to any seat based on attribute information corresponding to any seat; searching a position to be inserted from the index linked list based on the weight information corresponding to any seat, and inserting the seat information corresponding to any seat to the position to be inserted; based on the index linked list after the insertion processing, allocating an agent for the call; the index linked list includes: the system comprises an original linked list and at least one corresponding level of index, wherein the original linked list is obtained by sequencing current idle seats according to respective corresponding weight information, and each level of index in the at least one level of index is created based on the weight information. The method and the device can improve the agent ready efficiency of any agent changed into the idle state so as to improve the efficiency of searching for the idle agent and improve the call distribution efficiency.

Description

Automatic call distribution method, device, electronic equipment and storage medium
Technical Field
The present application relates to the field of computer technologies, and in particular, to an automatic call allocation method and apparatus, an electronic device, and a storage medium.
Background
An Automatic Call Distributor (ACD), also known as a queuing machine, is mainly used for handling incoming calls; in a call center, ACD automatic call distribution is an important technology, and the ACD automatically switches incoming calls of a call center system to correct seats or performs other automatic processing such as queuing or leaving messages according to specific rules, and the performance of the ACD directly affects the efficiency of the call center and the customer satisfaction.
However, in some large-scale voice contact centers, the number of seats is more than one thousand, and all the idle seats should be sorted according to a preset rule; because the amount of idle seats belongs to the flow variation, the new increase of the existing idle seats and the occupation of the idle seats are realized, so that when a large number of users call in, the ready time of the idle seats is long due to the new increase, the time for searching the idle seats is long, the waiting time of the users is prolonged, and the user experience is poor.
Disclosure of Invention
In order to reduce the time for searching for an idle agent, reduce the waiting time of a user, and improve the user experience, the present application provides an automatic call allocation method, an apparatus, an electronic device, and a storage medium, which are specifically shown as follows.
In a first aspect, the present application provides an automatic call allocation method, which adopts the following technical solutions:
an automatic call allocation method, comprising:
when any seat is detected to be changed from an occupied state to an idle state, acquiring attribute information corresponding to the any seat;
determining weight information corresponding to any seat based on the attribute information corresponding to any seat; searching a position to be inserted from an index linked list based on the weight information corresponding to any seat, and inserting the seat information corresponding to any seat to the position to be inserted;
based on the index linked list after the insertion processing, allocating an agent for the call;
wherein the index linked list comprises: the system comprises an original linked list and at least one corresponding level of index, wherein the original linked list is obtained by sequencing current idle seats according to respective corresponding weight information, and each level of index in the at least one level of index is created based on the weight information.
By adopting the technical scheme, when any occupied seat is changed from an occupied state to an idle state, the attribute information of the seat is obtained, the weight information of the seat is determined according to the attribute information of the seat, and then the position to be inserted is searched in the index linked list according to the weight information of the seat and is inserted; therefore, when a large number of users call incoming calls, the agents are rapidly allocated to the calls, the call waiting time of the users is effectively reduced, and the user experience can be improved.
In another possible implementation manner, the searching for the position to be inserted from the index linked list based on the weight information corresponding to any of the agents further includes:
creating an original linked list, wherein the original linked list comprises a plurality of nodes;
wherein each node comprises weight information of a corresponding agent;
and creating the at least one level of index based on the original linked list to obtain the index linked list.
Through the technical scheme, at least one level of index is created, when any seat changed into an idle state searches for the insertion position, traversal can be started by the level of index, and when the weight information closest to the seat is traversed, the position containing the weight information is reduced to the original linked list, so that the insertion position of the seat to be inserted can be found in the original linked list quickly.
In another possible implementation manner, the creating the at least one level of index based on the original linked list includes:
dividing each node in the original linked list into at least two node groups, wherein each node group comprises at least two adjacent nodes, and the nodes in each node group are not overlapped;
determining indexes corresponding to the node groups respectively, wherein the index corresponding to any node group is the maximum weight value or the minimum weight value in any node group;
if the preset condition is not met, determining a current-level index, and determining a next-level index based on the current-level index;
if the preset condition is not met, determining the current-level index in a circulating execution mode, and determining the next-level index based on the current-level index until the preset condition is met;
the preset conditions include:
the number of node groups composed of nodes in the current level index is less than 2.
By adopting the technical scheme, when the primary index is created, at least two adjacent nodes of the original linked list are used as a node group, the node containing the maximum or minimum weight value in the node group is used as an index node, and each index node forms the primary index; when the index node number in the first-level index is less than 2, continuing to determine the current-level index until the node number contained in the current-level index is less than 2, and finishing the creation of the index linked list; the establishment of the multi-level index is convenient for improving the speed of inserting the original linked list into any seat changed into an idle state, and the efficiency of updating the index linked list is improved, so that the quick allocation of the seats is convenient, and the user experience is improved.
In another possible implementation manner, the current-level index includes a plurality of index nodes;
determining a next level index based on the current level index, comprising:
dividing each index node into at least two index node groups, wherein each index node group comprises at least two adjacent index nodes, and the index nodes in each index node group are not overlapped;
and determining a next-level index based on the at least two index node groups.
By adopting the technical scheme, when determining the next-level index based on the current-level index, firstly, taking at least two adjacent index nodes in the first-level index as an index node group, and taking the index node with the maximum or minimum weight value in the index node group as the index node of the second-level index; at the moment, if the index node number contained in the secondary index is less than 2, the index creation is stopped; if the index node number contained in the secondary index is not less than 2, continuing to create an index node group for the index nodes contained in the secondary index, and finally forming a tertiary index, and stopping creating the index until the index node number is less than 2; and continuously establishing an index node group for the index nodes in each level of index, and always enabling the maximum weight value or the minimum weight value contained in the index node group to be used as the index node of the next level, so that the efficiency of finally inserting the original linked list into any seat changed into an idle state is improved.
In another possible implementation manner, searching a position to be inserted from an index linked list based on the weight information corresponding to any one of the agents, and then:
determining indexes of all levels of nodes to be inserted;
and respectively inserting index nodes into all levels of indexes of the nodes to be inserted based on the weight information corresponding to any seat.
By adopting the technical scheme, before any seat changed into an idle state is inserted into the original chain table, whether the node containing the seat weight information is an index node or not is judged, if so, when the corresponding node is required to be inserted, the index node is synchronously inserted into the corresponding at least one-level index, so that the index chain table is in the latest state, the position of the seat changed into the idle state is conveniently and quickly determined next time, the ready efficiency of the seat is improved, and the efficiency of allocating the seat for a user is improved and the user experience is improved.
In another possible implementation manner, obtaining attribute information corresponding to each seat in the current idle state;
determining weight information corresponding to the seats in each current idle state respectively based on the attribute information corresponding to the seats in each current idle state respectively;
and creating the original linked list based on the weight information respectively corresponding to the agents in the current idle states.
By adopting the technical scheme, before the index linked list is created, the original linked list is created; before an original chain table is created, firstly, the attribute information of the agents in the idle state at present is obtained, the weight information of each agent is determined according to the corresponding attribute information, and each agent is sequenced according to the weight information of each agent and a preset rule, so that the original chain table has a certain rule, and convenience is provided for the rapid insertion of the agents changed into the idle state.
In another possible implementation, when at least two calls are detected,
based on an original linked list, allocating agents for a call, comprising:
determining a call order based on time information of the detection of the respective calls;
and determining respective corresponding seats from the original linked list based on the call sequence, and allocating the seats for the calls.
By adopting the technical scheme, when a large number of users call in, firstly, the time information of each call is determined, and the call sequence is determined according to the time information of each call; and then, the agents in the idle state in the original linked list are sequentially allocated to each call according to the call sequence, namely, the proper agents can be preferentially allocated to the users in front of the call, so that the allocation efficiency can be improved, and the user experience can be improved.
In another possible implementation manner, when it is detected that any one of the seats is changed from the idle state to the occupied state, determining nodes to be deleted from the ordered linked list and determining respective nodes to be deleted from indexes of each level;
and deleting the nodes to be deleted in the ordered linked list and the nodes to be deleted determined in the indexes at all levels.
By adopting the technical scheme, when the seat in the original linked list is changed from an idle state to an occupied state, namely the seat is accessed to a call, the node containing the seat weight information is deleted from the original linked list so as to realize the updating of the index linked list; if the node containing the agent weight information is an index node at the same time, the corresponding index node should be deleted synchronously in the corresponding hierarchical index to reduce the possibility of disorder of the index linked list, so that the index linked list can maintain the original rule all the time, and the agents can be accurately and quickly allocated to the call.
In a second aspect, the present application provides an automatic call distribution device, which adopts the following technical solutions:
an automatic call distribution apparatus comprising:
the first acquisition module is used for acquiring attribute information corresponding to any seat when the situation that the occupied state of any seat is changed into the idle state is detected;
the first determining module is used for determining the weight information corresponding to any one of the agents based on the attribute information corresponding to any one of the agents;
a first inserting module, configured to search a position to be inserted from an index linked list based on the weight information corresponding to any agent, and insert the agent information corresponding to any agent into the position to be inserted;
the first allocation module is used for allocating seats for the call based on the index linked list after the insertion processing;
wherein the index linked list comprises: the system comprises an original linked list and at least one corresponding level of index, wherein the original linked list is obtained by sequencing current idle seats according to respective corresponding weight information, and each level of index in the at least one level of index is created based on the weight information.
By adopting the technical scheme, when any seat is detected to be changed from the occupied state to the idle state, the seat is in the non-access calling state, namely the ready state, and at the moment, the first acquisition module acquires the attribute information corresponding to the seat; then, determining the weight information of the seat through a first determining module, and inserting the seat into an index linked list containing at least one level of index through a first inserting module according to the corresponding weight information, wherein the establishment of the at least one level of index provides convenience for the insertion of the seat so as to realize the quick update of the index linked list; therefore, when a large number of calls are incoming, the updated index linked list can timely and quickly distribute the seats in the original linked list to all the calls in sequence, the call waiting time of a user is reduced, and the experience of the user is improved.
In another possible implementation manner, the apparatus further includes a first creating module and a second creating module, wherein,
the system comprises a first creating module, a second creating module and a third creating module, wherein the first creating module is used for creating an original linked list, and the original linked list comprises a plurality of nodes;
wherein each node comprises the weight information of the corresponding seat;
and the second establishing module is used for establishing the at least one level of index based on the original linked list to obtain the index linked list.
By adopting the technical scheme, the first creating module creates an original linked list, and the original linked list comprises the weight information of each agent; and then the second creating module creates at least one level of index based on the original linked list, and the setting of the at least one level of index is convenient for the first inserting module to insert the seat changed into the idle state into the original linked list quickly, thereby realizing the quick update of the index linked list.
In another possible implementation manner, when creating at least one level of index based on the original linked list, the second creating module is specifically configured to:
dividing each node in the original linked list into at least two node groups, wherein each node group comprises at least two adjacent nodes, and the nodes in each node group are not overlapped;
determining index nodes corresponding to each node group, wherein the index node corresponding to any node group is a node containing the maximum weight value or the minimum weight value in any node group;
if the preset condition is not met, determining the current-level index, and determining the next-level index based on the current-level index;
and if the preset condition is not met, determining the current-level index in a circulating mode, and determining the next-level index based on the current-level index until the preset condition is met.
The current-level index comprises a plurality of index nodes;
the preset conditions include:
the current level index contains a number of index nodes less than 2.
By adopting the technical scheme, each node in the original linked list is divided into at least one node group, then the corresponding index is determined for each node group, when the first inserting module needs to insert the corresponding seat according to the weight information, the corresponding index can firstly start to traverse, and the corresponding index finally descends to the original linked list, so that the first inserting module can conveniently and quickly insert the seat changed into an idle state into the original linked list; if the number of node groups formed by the nodes contained in the current-level index is not less than 2, determining the current-level index, and determining a next-level index based on the current-level index; if the next-level index still does not meet the preset condition, the current-level index is determined through circular execution, the next-level index is established based on the current-level index until the preset condition is met, and the establishment of the index linked list is completed, so that the working efficiency of the first insertion module is further improved.
In another possible implementation manner, the second creating module, when determining the next-level index based on the current-level index, is specifically configured to:
dividing each index node into at least two index node groups, wherein each index node group comprises at least two adjacent index nodes, and the index nodes in each index node group are not overlapped;
and determining a next-level index based on the at least two index node groups.
By adopting the technical scheme, when the preset condition is not met, all index nodes in the current-level index are divided into all index node groups so as to determine the current-level index; at this time, if the number of the index node groups of the current-level index is not less than 2, the next-level index is continuously determined until the creation of the index linked list is finally completed.
In another possible implementation manner, the apparatus further includes a second determining module and a second inserting module, wherein the second determining module and the second inserting module are configured to determine whether the second inserting module is inserted into the second inserting module
The second determining module is used for determining indexes of all levels of the nodes to be inserted;
and the second inserting module is used for respectively inserting index nodes into all levels of indexes of the nodes to be inserted based on the weight information corresponding to any seat.
By adopting the technical scheme, the second determining module judges whether the node to be inserted is the index node of each level, namely judges whether the weight information of the seat to be inserted is the weight information contained in the index node, and when the node to be inserted is the index node of each level, the second inserting module simultaneously inserts the index node into the corresponding level index.
In another possible implementation manner, the apparatus further includes a second obtaining module, a third determining module, and a third creating module, wherein,
the second acquisition module is used for acquiring attribute information corresponding to each current idle seat;
a third determining module, configured to determine, based on the attribute information corresponding to each seat in the current idle state, weight information corresponding to each seat in the current idle state;
and the third establishing module is used for establishing the original linked list based on the weight information respectively corresponding to the agents in the current idle states.
By adopting the technical scheme, the second acquisition module is used for acquiring the attribute information corresponding to the agents in the idle state at present, and the third determination module determines the corresponding weight information of each agent based on the attribute information of each agent in the idle state at present; and then the third creating module creates an original linked list based on the weight information corresponding to each agent determined by the third determining module.
In another possible implementation, when at least two calls are detected, the apparatus 20 may further include: a second distribution module, wherein,
the second allocating module, when allocating an agent to the call based on the original linked list, is specifically configured to: determining a call order based on time information of the detection of the respective calls; and determining respective corresponding seats from the original linked list based on the call sequence, and allocating the seats for the calls.
By adopting the technical scheme, when at least two calls are incoming, the sequence of each call is determined firstly, so that the second distribution module distributes the corresponding seats in the original linked list to each call in sequence to complete automatic call distribution.
In another possible implementation manner, the apparatus further includes a fourth determining module and a deleting module, wherein,
a fourth determining module, configured to determine, when it is detected that any one of the seats is changed from the idle state to the occupied state, a node to be deleted from the ordered linked list and a node to be deleted from each level of index;
and the deleting module is used for deleting the nodes to be deleted in the ordered linked list and the nodes to be deleted determined in the indexes at all levels.
By adopting the technical scheme, when any seat is changed from the idle state to the occupied state, the fourth determining module determines whether the node is an index node or not based on the node to be deleted, and the deleting module synchronously deletes the node to be deleted and each index node corresponding to the node so as to maintain and update the index linked list.
In a third aspect, the present application provides an electronic device, which adopts the following technical solutions:
an electronic device, comprising:
one or more processors;
a memory;
one or more application programs, wherein the one or more application programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs configured to: a method of automatic call distribution according to any of the possible implementations of the first aspect is performed.
In a fourth aspect, the present application provides a computer-readable storage medium, which adopts the following technical solutions:
a computer-readable storage medium, comprising: there is stored a computer program that can be loaded by a processor and that executes an automatic call allocation method as shown in any of the possible implementations of the first aspect.
In summary, the present application includes at least one of the following beneficial technical effects:
1. when the position to be inserted of the weight information corresponding to the seat changed into the idle state is searched, position query is carried out based on at least one-level index and the original linked list, the speed of searching the position to be inserted can be increased, the ready time of a newly-added idle seat is reduced, namely the ready efficiency of the index linked list is improved, and the ready index linked list keeps the original rule; therefore, when a large number of user calls are incoming, the agent is rapidly allocated to each call, the call waiting time of the user is effectively reduced, and the user experience can be improved;
2. when any seat is changed into an idle state, determining indexes of all levels of nodes to be inserted, and inserting the nodes into the indexes of all levels and the original linked list; when any seat is changed into an occupied state, determining whether the node is an index node, if so, synchronously deleting the corresponding index node when deleting the corresponding node of the original linked list; the maintenance of the index linked list is realized through the mode, and the agents are conveniently and accurately allocated to the calls.
Drawings
Fig. 1 is a flowchart illustrating an automatic call allocation method according to an embodiment of the present application.
Fig. 2 is a schematic structural diagram of an automatic call distribution apparatus according to an embodiment of the present application.
Fig. 3 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
FIG. 4 is a diagram illustrating a method of index linked list creation.
Fig. 5 is a schematic diagram of inserting weight information corresponding to an agent to be inserted into an index linked list.
Detailed Description
The present application is described in further detail below with reference to figures 1-5.
A person skilled in the art, after reading the present description, may make modifications to the embodiments as required, without any inventive contribution thereto, but shall be protected by the patent laws within the scope of the claims of the present application.
In order to make the objects, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are some embodiments of the present application, but not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
In addition, the term "and/or" herein is only one kind of association relationship describing an associated object, and means that there may be three kinds of relationships, for example, a and/or B, which may mean: a exists alone, A and B exist simultaneously, and B exists alone. In addition, the character "/" herein generally indicates that the former and latter related objects are in an "or" relationship, unless otherwise specified.
The embodiments of the present application will be described in further detail with reference to the drawings attached hereto.
The embodiment of the application provides an automatic call allocation method, which is executed by an electronic device, wherein the electronic device can be a server or a terminal device, wherein the server can be an independent physical server, a server cluster or a distributed system formed by a plurality of physical servers, and a cloud server for providing cloud computing service. The terminal device may be a smart phone, a tablet computer, a notebook computer, a desktop computer, and the like, but is not limited thereto, the terminal device and the server may be directly or indirectly connected through a wired or wireless communication manner, and an embodiment of the present application is not limited thereto, as shown in fig. 1, the method includes:
step S10, when it is detected that any seat changes from the occupied state to the idle state, acquiring attribute information corresponding to any seat.
Wherein, the occupation state of the seat means that the seat is serving for a calling user, and the idle state of the seat means that the seat is not serving any call and is in the idle state; the attribute information of the seat comprises a seat job number, tenant information, working duration and the like, and meanwhile, the attribute information of the seat can also comprise information of a seat grade and the like; in an embodiment of the present application, the tenant information includes: the unit to which the seat belongs can specifically refer to a department to which the seat belongs.
Further, in the embodiment of the present application, when any user (call) hangs up, the call service is terminated, at this time, the electronic device may detect that a corresponding agent (an agent terminating the call service) changes from an occupied state to an idle state, the agent is in a state capable of servicing the call, that is, a ready state, and at this time, attribute information corresponding to the agent is obtained to determine an insertion position of the agent in the index linked list.
Step S11, determining weight information corresponding to any agent based on the attribute information corresponding to any agent.
The weight information is obtained by normalizing the attribute information of the agent by a preset rule, where the preset rule may be an idle-first service rule, a shortest working time rule, or a rule applied in any other traffic distribution industry, and is not limited in the embodiment of the present application.
For the embodiment of the present application, the attribute information corresponding to any agent includes: the working duration, in the embodiment of the present application, determines the weight information corresponding to any seat by formula 1, wherein,
weight information = seat time data/preset value; (formula 1)
The seat time data is the working time length corresponding to any seat, the preset numerical value is preset, and the weight information is the weight information corresponding to any seat. For example, the preset value may be 100000.00000.
Specifically, the first idle first service rule and the shortest working time rule are counted from the beginning of the morning zero point, and the longest time is 86400 seconds in one day by taking seconds as a unit; the first idle first service and the shortest working time rule may not be counted from the beginning of the morning zero point, and may be counted from any other preset time point, and the time points of the first idle first service and the shortest working time rule for starting the counting may be the same or different, and are not limited in the embodiment of the present application.
The first-idle first-service rule and the shortest working time rule are counted by starting from the morning zero point, and for the first-idle first-service rule, the seat time data is the difference between the latest ready state time and the second of the morning zero point; for the shortest working time rule, the seat time data is the accumulated working time of the day, and the unit is second; for the first idle and first service rule, if the latest ready time of a certain seat is 08:00, the seat time data of the seat is 28800 s; for the shortest working time rule, if the working time of a certain seat on the day is from 08:00 to 16:00, namely 8 hours, the seat time data of the seat is 28800 s.
Specifically, in the embodiment of the present application, the preset value may be any positive number, and when calculating the weight information, the preset value should be kept as the same preset value, and the number of bits of the decimal part of the preset value is as large as possible, for example, 100000.00000; in the embodiment of the application, a preset numerical value is 100000.00, and at the moment, the weight information obtained through a preset rule is decimal between [0 and 1 ]; after the electronic equipment acquires the attribute information of any seat changed into an idle state, calculating the weight information of the seat according to a preset rule and the attribute information corresponding to the seat; specifically, when the decimal part digits of the preset numerical value are as many as possible, the decimal digits of each seat weight information can be reserved as many as possible, so that each seat can be distinguished accurately according to the weight information, and the accuracy of sequencing each seat is improved.
And step S12, searching a position to be inserted from the index linked list based on the weight information corresponding to any seat, and inserting the seat information corresponding to any seat to the position to be inserted.
Wherein, the index linked list includes: the system comprises an original linked list and at least one corresponding level of index, wherein the original linked list is obtained by sequencing current idle seats according to respective corresponding weight information, and each level of index in the at least one level of index is created based on the weight information.
Specifically, the original linked list includes a plurality of nodes, each node corresponds to each idle agent, and each node includes attribute information and weight information corresponding to the idle agent.
Specifically, the current idle agent is an agent that is not currently serving any call and is in an idle state; in the embodiment of the application, after obtaining the weight information of each current idle seat according to formula 1, the electronic device sorts each current idle seat according to the weight information of each current idle seat, and obtains an original linked list. In the embodiment of the application, the sequence of the original linked list is the sequence of the weight values corresponding to all the seats; the sorting order may be according to the weight value from large to small, or according to the weight value from small to large.
Further, after determining the original linked list, at least one level of index is determined based on the original linked list, wherein the manner of creating the at least one level of index is described in detail in the following embodiments.
Specifically, in the embodiment of the application, after acquiring weight information corresponding to an agent whose occupied state is changed into an idle state, the electronic device searches for a to-be-inserted position of the agent in an index linked list, and after the agent is inserted, an original linked list still maintains an original sequence rule; when the inserting position of the seat to be inserted is searched, traversing all levels of indexes, and finally descending the indexes to the corresponding position of the original linked list; the index linked list is traversed by the method, all nodes in the original linked list do not need to be traversed each time, and therefore the speed of determining the insertion of the seat to be inserted can be increased, and the user experience is further improved.
And step S13, allocating seats for the call based on the index linked list after the insertion processing.
For the embodiment of the application, after the electronic equipment inserts the seats to be inserted into the index linked list, the obtained index linked list keeps the original sequence rule; that is, when a large number of user calls exist, determining a call sequence, and allocating seats for each call based on the call sequence and the index linked list; in the process of allocating the seats for each call, when detecting that a certain seat is changed from an occupied state to an idle state, the seat changed to the idle state can be inserted into a corresponding position, and the seat is allocated for the call based on the index linked list after the insertion processing.
For the embodiment of the application, when a large number of users call in, the idle seats are quickly inserted through the index linked list, and the seats are allocated to the calls according to the inserted index linked list, so that the time waste caused by the insertion of the seats is reduced, the seat allocation efficiency is improved, the idle seats are inserted when the idle seats are detected, the seats are allocated to the calls based on the inserted index linked list, and the seat allocation accuracy is improved.
For the embodiment of the application, when the electronic device detects an agent changing from an occupied state to an idle state, the electronic device firstly obtains attribute information of the agent, obtains corresponding weight information according to a formula 1, and then sequentially traverses from indexes of different levels according to the weight information of the agent until an insertion position is finally found in an original linked list and inserted so as to obtain a current index linked list, wherein the current index linked list keeps a sequence rule consistent with the original index linked list.
Specifically, as shown in the index linked list shown in fig. 4, if the weight value corresponding to the seat to be inserted is 0.270, when an insertion position is found for the seat, the top-level index traverses the seat first, and the top-level index of the ordered linked list is a four-level index; when traversing to the node with the weight value of 0.250 in the third-level index, descending from the position to the second-level index and the first-level index until the insertion position is finally found in the original linked list, and traversing seven times totally; if the search is directly carried out in the original linked list, starting from the head node, traversing for ten times is needed; therefore, the traversal times are effectively reduced by creating the four-level index shown in fig. 4, so that when the electronic device calculates the weight information of the seat changed to the idle state, the seat can be quickly inserted into the appropriate position of the index linked list, the ready preparation time of the index linked list is effectively reduced, and the seat can be quickly and accurately allocated to the call.
In a possible implementation manner of the embodiment of the present application, step S12 further includes step Sa (not shown in the figure) and step Sb (not shown in the figure), wherein,
and step Sa, creating an original linked list.
The original linked list comprises a plurality of nodes, and each node comprises weight information of a corresponding seat.
And Sb, creating at least one level of index based on the original linked list to obtain an index linked list.
Wherein, at least one level of index is established according to the weight information contained in each node in the original linked list; for the index linked list shown in fig. 4, the primary index, the secondary index, the tertiary index, and the quaternary index are created based on the weight information included in each node in the original linked list.
Specifically, creating at least one level of index based on the original linked list may specifically include: step Sb0 (not shown), step Sb1 (not shown), step Sb2 (not shown), and step Sb3 (not shown), wherein,
step Sb0 (not shown), divides each node in the original linked list into at least two node groups.
Each node group comprises at least two adjacent nodes, and the nodes in each node group are not overlapped.
Specifically, in the embodiment of the present application, when creating at least one level of index, each at least two adjacent nodes in the original linked list are sequentially divided into a node group, as shown in fig. 4, each two adjacent nodes in the original linked list are sequentially divided into a node group, the node groups finally divided by the original linked list respectively comprise a node group consisting of a node containing a weight value of 0.010 and a node containing a weight value of 0.030, a node group consisting of a node containing a weight value of 0.040 and a node containing a weight value of 0.060, a node group consisting of a node containing a weight value of 0.100 and a node containing a weight value of 0.130, a node group consisting of a node containing a weight value of 0.140 and a node containing a weight value of 0.141, and a node group consisting of a node containing a weight value of 0.250 and a node containing a weight value of 0.270, and a node group consisting of nodes having a weight value of 0.280 and nodes having a weight value of 0.300.
In step Sb1 (not shown), index nodes corresponding to the node groups are determined.
The index node corresponding to any node group is a node containing the maximum weight value or the minimum weight value in any node group.
In the embodiment of the present application, according to the sorting rule of the original linked list, the node in each node group that contains the maximum weight value or the minimum weight value is used as the index node of the node group, and for the ordered linked list shown in fig. 4, the nodes are sorted in the order from small to large according to the weight values contained in the respective nodes, so that the node in each node group that contains the minimum weight value is used as the index node of the node group at this time; for example, for a node group consisting of a node having a weight value of 0.010 and a node having a weight value of 0.030, a node group consisting of a node having a weight value of 0.010 and a node having a weight value of 0.040 and a node having a weight value of 0.060, a node group consisting of a node having a weight value of 0.040 and a node having a weight value of 0.130, a node group consisting of a node having a weight value of 0.100 and a node having a weight value of 0.141, a node group consisting of a node having a weight value of 0.140 and a node having a weight value of 0.270, a node group consisting of a node having a weight value of 0.250 and a node having a weight value of 0.300, the weight value corresponding to the corresponding first-level index node is 0.280.
In step Sb2 (not shown), if the predetermined condition is not satisfied, the current-level index is determined, and the next-level index is determined based on the current-level index.
Wherein the preset conditions include: the current level index contains a number of index nodes less than 2. That is, when the current-level index contains the number of index nodes not less than 2, the current-level index is determined, and the next-level index is determined based on the current-level index. Specifically, in the embodiment of the present application, as shown in fig. 4, the original linked list is a single linked list including 12 nodes, when data of a last node needs to be searched, the data needs to be traversed from the head to the tail, the number of traversal times is 12, and the time complexity at this time is o (n); for the single linked list shown in fig. 4, if every two adjacent nodes form a node group, the primary index formed by the original linked list includes 6 index nodes, and at this time, because the number of the index nodes included in the primary index is not less than 2, the next-level index, i.e., the secondary index, needs to be created continuously according to the current-level index.
Specifically, determining the next-level index based on the current-level index further specifically includes step Sb20 (not shown in the figure) and step Sb21 (not shown in the figure), wherein,
step Sb20 (not shown), divides each index node into at least two index node groups.
Each index node group comprises at least two adjacent index nodes, and the index nodes in each index node group are not overlapped.
Step Sb21 (not shown), determines the next-level index based on at least two index node groups.
In the embodiment of the application, when determining the next-level index, firstly, sequentially dividing at least two adjacent index nodes in the current-level index into an index node group, wherein the next-level index at least comprises one index node; for example, in fig. 4, the primary index includes a primary index node having a weight value of 0.010, a primary index node having a weight value of 0.040, a primary index node having a weight value of 0.100, a primary index node having a weight value of 0.140, a primary index node having a weight value of 0.250, and a primary index node having a weight value of 0.280, and for the primary index, an index node group is formed by the primary index node having a weight value of 0.010 and the primary index node having a weight value of 0.040, an index node group is formed by the primary index node having a weight value of 0.100 and the primary index node having a weight value of 0.140, and an index node group is formed by the primary index node having a weight value of 0.250 and the primary index node having a weight value of 0.280.
Further, a first-level index node containing a weight value of 0.010 and a first-level index node containing a weight value of 0.040 form an index node group, and at the moment, the corresponding second-level index node is a second-level index node containing a weight value of 0.010; forming an index node group by the primary index nodes with the weight value of 0.100 and the primary index nodes with the weight value of 0.140, wherein the corresponding secondary index nodes are secondary index nodes with the weight value of 0.100; and forming an index node group by the primary index nodes with the weight value of 0.250 and the primary index nodes with the weight value of 0.280, wherein the corresponding secondary index nodes are secondary index nodes with the weight value of 0.250.
Specifically, for the index linked list shown in fig. 4, when creating the secondary index, each adjacent two index nodes in each index node included in the primary index are used as one index node group to finally form three index node groups, the index nodes of each index node group are determined according to each index node group, and each index node forms the secondary index; at this time, if a node containing a weight value of 0.300 needs to be searched, traversal can be started by a secondary index, when the node is traversed to an index node containing a weight value of 0.250, the index node is descended to an original linked list, and finally, traversal is carried out for 8 times to obtain a node with a value of 0.300; if the traversal is started directly from the original linked list, the traversal needs to be performed for 12 times, and obviously, the query efficiency of the data is improved by creating a secondary index.
In step Sb3 (not shown), if the preset condition is not satisfied, determining the current-level index and determining the next-level index based on the current-level index are performed in a loop until the preset condition is satisfied.
The preset conditions comprise: the current level index contains a number of index nodes less than 2. That is, if the number of index nodes included in the current-level index is not less than 2, the current-level index is determined, and the next-level index is determined based on the current-level index.
Specifically, determining the next-level index based on the current-level index includes: dividing each index node into at least two index node groups, wherein each index node group comprises at least two adjacent index nodes, and the index nodes in each index node group are not overlapped; and determining a next-level index based on the at least two index node groups.
Specifically, the method for determining the next-level index based on the current-level index is detailed in the above embodiment, and is not repeated herein, and for the index linked list shown in fig. 4, because the index node number in the second-level index is not less than 2, the creation of the third-level index based on the second-level index is continued, and the index node number included in the third-level index is 3 and not less than 2, which does not satisfy the preset condition; therefore, the four-level index needs to be continuously created based on the three-level index, the number of nodes contained in the four-level index is 1 and is less than 2, the preset condition is met, the determination of the next-level index is stopped, and the creation of the index linked list is completed.
Specifically, when a node containing a weight value of 0.300 needs to be searched, traversal can be started from a four-level index, firstly, an index node containing the weight value of 0.010 is reduced to a three-level index, and the index node containing the weight value of 0.010 in the three-level index is traversed backwards until the node containing the weight value of 0.250 is traversed, and the node is reduced to the two-level index; and then descending to a first-level index, and continuing traversing backwards by an index node with the weight value of 0.250 in the first-level index until the index node with the weight value of 0.280 finally descends to the original linked list by the index node until 0.300 is finally traversed, wherein the total traversal time is 8 times, and the traversal time is less than the time directly traversed by the original linked list.
A possible implementation manner of the embodiment of the present application is to search a position to be inserted from the index linked list based on weight information corresponding to any agent, and then further include step S120 (not shown in the figure) and step S121 (not shown in the figure), where,
in step S120 (not shown), indexes of different levels of the node to be inserted are determined.
Wherein, each level index refers to at least one level index except the original chain table which needs to be inserted into the index node; in the embodiment of the application, after the weight information of any agent is inserted into the original linked list, the index node needs to be inserted into the index associated with the weight information, so that the situation that the node is only inserted into the original linked list, and the continuous increase of time complexity caused by the adjustment of indexes at different levels is avoided.
Further, in the embodiment of the present application, the determining a manner of each level of the index of the node to be inserted includes: generating a random number L through a random number function, wherein the random number L represents the layers of indexes into which the index nodes corresponding to the original data are inserted; if the value of the random number L generated according to the random number function is 3, an index node needs to be added to the 1 st to 3 rd layer indexes.
Step S121 (not shown in the figure), based on the weight information corresponding to any agent, an index node is respectively inserted into each level of index of the node to be inserted.
For the embodiment of the application, after the node corresponding to the weight information corresponding to any seat is inserted, the node with influence is determined in the original linked list, and based on the node with influence, the node group is subdivided for the node with influence according to the above method, and based on the subdivided node group, the corresponding index node is inserted into each level of index for determining the node to be inserted.
For example, as shown in fig. 5, L =2, after an index node containing a weight value of 0.290 is inserted into the original linked list, where a primary index node containing a weight value of 0.280 is a primary index corresponding to an index node group consisting of a node containing a weight value of 0.280 and a node containing a weight value of 0.290, and a primary index node corresponding to a node containing a weight value of 0.300 (including a primary index node containing a weight value of 0.300) is added, and based on this, a secondary index node corresponding to a secondary index containing weight information of 0.300 is added.
In a possible implementation manner of the embodiment of the present application, the method may further include: step Sc (not shown), step Sd (not shown), and step Se (not shown), wherein the steps Sc, Sd, and Se may be executed before step S10, step S11, step S12, or other possible execution orders, which are not limited in the embodiment of the present application,
and step Sc (not shown in the figure), acquiring attribute information corresponding to each of the agents in the current idle state.
For the embodiment of the application, the electronic device first obtains attribute information corresponding to each current idle seat, wherein the attribute information includes the seat job number, tenant information, working duration and the like of the seat.
And step Sd (not shown in the figure), determining weighting information corresponding to each agent in each idle state based on the attribute information corresponding to each agent in each idle state.
For the embodiment of the present application, the weight information of the current idle seat is calculated according to the preset rule and the attribute information of each current idle seat, and the method for calculating the weight information is as in the above embodiment, and is not described herein again.
And step Se (not shown in the figure), creating an original linked list based on the weight information respectively corresponding to the agents in the current idle states.
For the embodiment of the application, the current idle seats are sorted according to the weight information of each current idle seat to obtain an ordered original linked list; the sorting rule is as above, and is not described herein again.
In a possible implementation manner of the embodiment of the present application, the method further includes, when at least two calls are detected, allocating an agent to the call based on the original linked list, and specifically may include step So (not shown in the figure) and step Sq (not shown in the figure), where the step So (not shown in the figure) and the step Sq (not shown in the figure) are included
A step So (not shown in the figure) of determining a call sequence based on the time information of the detection of each call;
and step Sq (not shown in the figure), determining the corresponding seats from the original linked list based on the call sequence, and distributing the seats for each call.
For the embodiment of the application, the electronic equipment detects the calls in real time, acquires the time information of the corresponding calls when at least two calls are detected, wherein the time information refers to the time when the calls are incoming, and determines the call sequence of the corresponding calls based on the time information; and then the electronic equipment sequentially allocates the seats in the ordered linked list to the corresponding calls according to the incoming call sequence of the calls.
For example, when three call incoming calls are detected, if the incoming times of the three calls are 09:12, 09:13, and 09:14, respectively, the three seats with the weight values of 0.010, 0.030, and 0.040 corresponding to the first three bits in the ordered linked list shown in fig. 4 may be sequentially allocated to the three calls.
For the embodiment of the present application, the manner of allocating the agent to each call in the above embodiments may be allocation based on an original linked list, or allocation based on an inserted index linked list. The examples of the present application are not intended to be limiting.
In another possible implementation manner of the embodiment of the present application, the method may further include: when any seat is detected to be changed from an idle state to an occupied state, determining nodes to be deleted from the ordered linked list and determining respective nodes to be deleted from indexes at all levels; and deleting the nodes to be deleted in the ordered linked list and the nodes to be deleted determined in the indexes of all levels.
For the embodiment of the application, when the electronic device detects that any one of the seats is changed from the idle state to the occupied state, that is, when any one of the seats in the original linked list is detected to access the call, that is, because the node in the original linked list represents the seat currently in the idle state, when any one of the seats is changed from the idle state to the occupied state, the corresponding node in the original linked list needs to be deleted, and the index node associated with the node needs to be deleted.
Specifically, firstly, the node containing the weight information corresponding to the agent in the ordered linked list is determined, the node may be only the node in the original linked list or may also be the index node in the corresponding hierarchical index, and after the determination is finished, the nodes are deleted synchronously.
Specifically, for the ordered linked list shown in fig. 4, when an agent access call corresponding to a weight value of 0.250 is detected, it may be determined that a node to be deleted is a node containing a weight value of 0.250, and as can be known from the ordered linked list, a node containing a weight value of 0.250 is an index node of a third-level index, a second-level index, and a first-level index at the same time, and at this time, these nodes are deleted from the ordered linked list at the same time, and a new ordered linked list is formed.
The above embodiments describe a method for automatic call allocation from the perspective of method flow, and the following embodiments describe an apparatus for automatic call allocation from the perspective of virtual modules or virtual units, which are described in detail in the following embodiments.
An embodiment of the present application provides an automatic call distribution apparatus 20, as shown in fig. 2, the automatic call distribution apparatus 20 may specifically include: a first acquisition module 200, a first determination module 201, a first insertion module 202, and a first distribution module 203, wherein,
a first obtaining module 200, configured to obtain attribute information corresponding to any seat when it is detected that any seat is changed from an occupied state to an idle state;
a first determining module 201, configured to determine, based on attribute information corresponding to any agent, weight information corresponding to any agent;
the first inserting module 202 is configured to search a position to be inserted from the index linked list based on weight information corresponding to any agent, and insert agent information corresponding to any agent into the position to be inserted;
and the first allocation module 203 is configured to allocate an agent to the call based on the index linked list after the insertion processing.
In another possible implementation manner of the embodiment of the present application, the apparatus 20 further includes a first creating module and a second creating module, wherein,
the first establishing module is used for establishing an original linked list;
the second establishing module is used for establishing at least one level of index based on the original linked list to obtain an index linked list;
wherein the original linked list comprises a plurality of nodes.
In another possible implementation manner of the embodiment of the application, the second creating module, when creating at least one level of index based on the original linked list, is specifically configured to: dividing each node in the original linked list into at least two node groups, wherein each node group comprises at least two adjacent nodes, and the nodes in each node group are not overlapped; determining index nodes corresponding to each node group, wherein the index node corresponding to any node group is a node containing the maximum weight value or the minimum weight value in any node group; if the preset condition is not met, determining the current-level index, and determining the next-level index based on the current-level index; and if the preset condition is not met, determining the current-level index in a circulating mode, and determining the next-level index based on the current-level index until the preset condition is met.
The current-level index comprises a plurality of index nodes;
the preset conditions include:
the current level index contains a number of index nodes less than 2.
In another possible implementation manner of the embodiment of the present application, when determining the next-level index based on the current-level index, the second creating module is specifically configured to:
dividing each index node into at least two index node groups, wherein each index node group comprises at least two adjacent index nodes, and the index nodes in each index node group are not overlapped;
and determining a next-level index based on the at least two index node groups.
In another possible implementation manner of the embodiment of the present application, the apparatus 20 further includes:
the second determining module is used for determining indexes of all levels of the nodes to be inserted;
and the second inserting module is used for respectively inserting the index nodes into all levels of indexes of the nodes to be inserted based on the weight information corresponding to any seat.
In another possible implementation manner of the embodiment of the present application, the apparatus 20 further includes:
the second acquisition module is used for acquiring attribute information corresponding to each current idle seat;
the third determining module is used for determining the weight information corresponding to the seat in each idle state respectively based on the attribute information corresponding to the seat in each idle state respectively;
and the third establishing module is used for establishing an original linked list based on the weight information respectively corresponding to the agents in the current idle states.
In another possible implementation manner of this embodiment of the present application, when at least two calls are detected, the apparatus 20 may further include: a second distribution module, wherein,
the second allocating module, when allocating an agent to the call based on the original linked list, is specifically configured to: determining a call order based on time information of the detection of the respective calls; and determining the corresponding seats from the original linked list based on the call sequence, and allocating the seats for the calls.
In another possible implementation manner of the embodiment of the present application, the apparatus 20 further includes a fourth determining module and a deleting module, wherein,
a fourth determining module, configured to determine, when it is detected that any one of the seats is changed from the idle state to the occupied state, a node to be deleted from the ordered linked list and a node to be deleted from each level of index;
and the deleting module is used for deleting the nodes to be deleted in the ordered linked list and the nodes to be deleted determined in the indexes of all levels.
Further, in this embodiment of the application, the first obtaining module 200 and the second obtaining module may be the same obtaining module or different obtaining modules; the first determining module 201, the second determining module, the third determining module and the fourth determining module may all be the same determining module, or may all be different determining modules, or may be partially the same determining module; the first plug-in module 202 and the second plug-in module may be the same plug-in module or different plug-in modules; the first allocation module 203 and the second allocation module may be the same allocation module or different allocation modules; the first creation module, the second creation module and the third creation module may all be the same creation module, may all be different creation modules, or may be partially the same creation module; the embodiments of the present application are not limited.
In the embodiment of the application, when any seat is detected to be changed from an occupied state to an idle state, the seat is in a non-access call state, namely a ready state, and at this time, a first acquisition module acquires attribute information corresponding to the seat; then, determining the weight information of the seat through a first determining module, and inserting the seat into an index linked list containing at least one level of index through a first inserting module according to the corresponding weight information, wherein the establishment of the at least one level of index provides convenience for the insertion of the seat so as to realize the quick update of the index linked list; therefore, when a large number of calls are incoming, the updated index linked list can timely and quickly distribute the seats in the original linked list to all the calls in sequence, the call waiting time of a user is reduced, and the experience of the user is improved.
The embodiment of the present application provides an apparatus for automatic call allocation, which is suitable for the foregoing method embodiment and will not be described herein again.
In the embodiment of the present application, an electronic device 30 is provided, as shown in fig. 3, where the electronic device 30 shown in fig. 3 includes: a processor 300 and a memory 302. Wherein processor 300 is coupled to memory 302, such as via bus 301. Optionally, the electronic device 30 may further comprise a transceiver 303. It should be noted that the transceiver 303 is not limited to one in practical applications, and the structure of the electronic device 30 is not limited to the embodiment of the present application.
The Processor 300 may be a CPU (Central Processing Unit, CPU 300), a general-purpose Processor 300, a DSP (Digital Signal Processor, DSP 300), an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or other Programmable logic device, transistor logic device, hardware component, or any combination thereof. Which may implement or perform the various illustrative logical blocks, modules, and circuits described in connection with the disclosure. The processor 300 may also be a combination of computing functions, e.g., comprising one or more microprocessors 300 in combination, a DSP and microprocessor 300 in combination, or the like.
Bus 301 may include a path that transfers information between the aforementioned components. The bus 3011002 may be a PCI (Peripheral Component Interconnect) bus 301, an EISA (Extended Industry Standard Architecture) bus 301, or the like. The bus 301 may be divided into an address bus 301, a data bus 301, a control bus 301, and the like. For ease of illustration, only one thick line is shown in FIG. 3, but does not indicate only one bus 301 or one type of bus 301.
The Memory 302 may be a ROM (Read Only Memory 302) or other type of static storage device that can store static information and instructions, a RAM (Random Access Memory 302) or other type of dynamic storage device that can store information and instructions, an EEPROM (Electrically Erasable Programmable Read Only Memory 302), a CD-ROM (Compact Disc Read Only Memory) or other optical Disc storage, optical Disc storage (including Compact Disc, laser Disc, optical Disc, digital versatile Disc, blu-ray Disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer, but is not limited to these.
The memory 302 is used for storing application program codes for executing the scheme of the application, and is controlled by the processor 300 to execute. The processor 300 is configured to execute application program code stored in the memory 302 to implement the aspects of the foregoing method embodiments.
Electronic device 30 includes, but is not limited to: mobile terminals such as mobile phones, notebook computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and the like, and fixed terminals such as digital TVs, desktop computers, and the like. But also a server, etc. The electronic device 30 shown in fig. 3 is only an example and should not bring any limitation to the functions and the scope of use of the embodiments of the present disclosure.
The present application provides a computer-readable storage medium, on which a computer program is stored, which, when running on a computer, enables the computer to execute the corresponding content in the foregoing method embodiments. Compared with the prior art, when any occupied seat is changed from an occupied state to an idle state, the method and the device firstly acquire the attribute information of the seat, determine the weight information of the seat according to the attribute information of the seat, and then search and insert the position to be inserted in the index linked list according to the weight information of the seat; therefore, when a large number of users call incoming calls, the agents are rapidly allocated to the calls, the call waiting time of the users is effectively reduced, and the user experience can be improved.
It should be understood that, although the steps in the flowcharts of the figures are shown in order as indicated by the arrows, the steps are not necessarily performed in order as indicated by the arrows. The steps are not performed in the exact order shown and may be performed in other orders unless explicitly stated herein. Moreover, at least a portion of the steps in the flow chart of the figure may include multiple sub-steps or multiple stages, which are not necessarily performed at the same time, but may be performed at different times, which are not necessarily performed in sequence, but may be performed alternately or alternately with other steps or at least a portion of the sub-steps or stages of other steps.
The foregoing is only a partial embodiment of the present application, and it should be noted that, for those skilled in the art, various modifications and decorations can be made without departing from the principle of the present application, and these modifications and decorations should also be regarded as the protection scope of the present application.

Claims (10)

1. An automatic call allocation method, comprising:
when any seat is detected to be changed from an occupied state to an idle state, acquiring attribute information corresponding to the any seat;
determining weight information corresponding to any seat based on the attribute information corresponding to any seat; searching a position to be inserted from an index linked list based on the weight information corresponding to any seat, and inserting the seat information corresponding to any seat to the position to be inserted;
based on the index linked list after the insertion processing, allocating an agent for the call;
wherein the index linked list comprises: the system comprises an original linked list and at least one corresponding level of index, wherein the original linked list is obtained by sequencing current idle seats according to respective corresponding weight information, and each level of index in the at least one level of index is created based on the weight information.
2. The method according to claim 1, wherein the searching for the location to be inserted from the index linked list based on the weight information corresponding to any agent further comprises:
creating an original linked list, wherein the original linked list comprises a plurality of nodes;
wherein each node comprises the weight information of the corresponding seat;
and creating the at least one level of index based on the original linked list to obtain the index linked list.
3. The method of claim 2, wherein the creating the at least one level index based on the original linked list comprises:
dividing each node in the original linked list into at least two node groups, wherein each node group comprises at least two adjacent nodes, and the nodes in each node group are not overlapped;
determining index nodes corresponding to each node group, wherein the index node corresponding to any node group is the maximum weight value or the minimum weight value in any node group;
if the preset condition is not met, determining a current-level index, and determining a next-level index based on the current-level index;
if the preset condition is not met, determining the current-level index in a circulating execution mode, and determining the next-level index based on the current-level index until the preset condition is met;
the current-level index comprises a plurality of index nodes;
the preset conditions include:
the current level index contains a number of index nodes less than 2.
4. The method of claim 3, wherein determining a next-level index based on the current-level index comprises:
dividing each index node into at least two index node groups, wherein each index node group comprises at least two adjacent index nodes, and the index nodes in each index node group are not overlapped;
and determining a next-level index based on the at least two index node groups.
5. The method according to any of claims 1-4, wherein the location to be inserted is looked up from an index linked list based on the weight information corresponding to any agent, and then further comprising:
determining indexes of all levels of nodes to be inserted;
and respectively inserting index nodes into all levels of indexes of the nodes to be inserted based on the weight information corresponding to any seat.
6. An automatic call distribution method according to any one of claims 2-4, characterized in that the method further comprises:
acquiring attribute information corresponding to each current idle seat;
determining weight information corresponding to the seats in each current idle state respectively based on the attribute information corresponding to the seats in each current idle state respectively;
and creating the original linked list based on the weight information respectively corresponding to the agents in the current idle states.
7. An automatic call allocation method according to claim 1, characterized in that, when at least two calls are detected,
based on an original linked list, allocating agents for a call, comprising:
determining a call order based on time information of the detection of the respective calls;
and determining respective corresponding seats from the original linked list based on the call sequence, and allocating the seats for the calls.
8. The method of claim 1, wherein the method further comprises:
when any seat is detected to be changed from an idle state to an occupied state, determining nodes to be deleted from the ordered linked list and determining respective nodes to be deleted from indexes at all levels;
and deleting the nodes to be deleted in the ordered linked list and the nodes to be deleted determined in the indexes at all levels.
9. An electronic device, comprising:
one or more processors;
a memory;
one or more applications, wherein the one or more applications are stored in the memory
In memory and configured to be executed by the one or more processors, the one or more programs configured to: performing the automatic call allocation method according to any one of claims 1 to 8.
10. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the method of automatic call distribution according to any one of claims 1 to 8.
CN202110528772.2A 2021-05-14 2021-05-14 Automatic call distribution method, device, electronic equipment and storage medium Pending CN113225439A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110528772.2A CN113225439A (en) 2021-05-14 2021-05-14 Automatic call distribution method, device, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110528772.2A CN113225439A (en) 2021-05-14 2021-05-14 Automatic call distribution method, device, electronic equipment and storage medium

Publications (1)

Publication Number Publication Date
CN113225439A true CN113225439A (en) 2021-08-06

Family

ID=77092040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110528772.2A Pending CN113225439A (en) 2021-05-14 2021-05-14 Automatic call distribution method, device, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN113225439A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535600B1 (en) * 1999-12-06 2003-03-18 Avaya Technology Corp. System for automatically routing calls to call center agents in an agent surplus condition based on service levels
CN101159782A (en) * 2007-11-08 2008-04-09 中兴通讯股份有限公司 Large client system call queuing device and method
CN105681603A (en) * 2014-11-21 2016-06-15 华为软件技术有限公司 Call center agent terminal conversation fault processing method and device
CN108200298A (en) * 2016-12-23 2018-06-22 云帧(上海)信息技术有限公司 Method of calling and system based on call center system
CN108933871A (en) * 2018-07-12 2018-12-04 平安科技(深圳)有限公司 Call center's incoming call traffic method for routing, apparatus and system
CN109873910A (en) * 2019-03-28 2019-06-11 中国联合网络通信集团有限公司 Processing method, device and the storage medium of session request

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535600B1 (en) * 1999-12-06 2003-03-18 Avaya Technology Corp. System for automatically routing calls to call center agents in an agent surplus condition based on service levels
CN101159782A (en) * 2007-11-08 2008-04-09 中兴通讯股份有限公司 Large client system call queuing device and method
CN105681603A (en) * 2014-11-21 2016-06-15 华为软件技术有限公司 Call center agent terminal conversation fault processing method and device
CN108200298A (en) * 2016-12-23 2018-06-22 云帧(上海)信息技术有限公司 Method of calling and system based on call center system
CN108933871A (en) * 2018-07-12 2018-12-04 平安科技(深圳)有限公司 Call center's incoming call traffic method for routing, apparatus and system
CN109873910A (en) * 2019-03-28 2019-06-11 中国联合网络通信集团有限公司 Processing method, device and the storage medium of session request

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
360LINKER: "《https://zhuanlan.zhihu.com/p/347062710》", 26 January 2021 *
汪文君: "《Java高并发编程详解》", 30 June 2020 *

Similar Documents

Publication Publication Date Title
WO2018166104A1 (en) Agent allocation method and device, server, and storage medium
CN106294421B (en) Data writing and reading method and device
CN109800204B (en) Data distribution method and related product
CN109240607B (en) File reading method and device
CN114356558B (en) Capacity reduction processing method and device based on cluster
TW201712537A (en) System, method, and apparatus for computer system resource allocation
CN111722918A (en) Service identification code generation method and device, storage medium and electronic equipment
CN113177050B (en) Data equalization method, device, query system and storage medium
CN112363886A (en) Database monitoring method, system, terminal and storage medium
CN112333260A (en) Cloud computing task scheduling method and cloud computing system
US9189279B2 (en) Assignment method and multi-core processor system
CN113225439A (en) Automatic call distribution method, device, electronic equipment and storage medium
CN109062683A (en) The method, apparatus and computer readable storage medium of host resource distribution
CN106020971B (en) CPU scheduling method and device in cloud host system
CN112749899A (en) Order dispatching method, device and storage medium
CN108429704B (en) Node resource allocation method and device
CN111967798B (en) Method, device and equipment for distributing experimental samples and computer readable storage medium
CN110688223B (en) Data processing method and related product
CN113553175A (en) Optimal sorting algorithm selection method facing traffic data flow
CN113868373A (en) Word cloud generation method and device, electronic equipment and storage medium
CN111008071A (en) Task scheduling system, method and server
CN112269947A (en) Spatial text data caching method and device, electronic equipment and storage medium
CN109787899B (en) Data partition routing method, device and system
CN111078160A (en) Data migration and storage method and device based on call proportion and response duration
CN112912849A (en) Graph data-based calculation operation scheduling method, system, computer-readable medium and equipment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210806