Calling system

Through clustering and service governance architecture, dynamic expansion and fault self-healing of the call system were achieved, solving the problems of insufficient interfaces, difficult integration and maintenance, and slow iteration of the existing call system, and improving system scalability and user experience.

CN121173786AActive Publication Date: 2025-12-19JIANGSU MANYUN LOGISTICS INFORMATION CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202511705522.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-11-20
Publication Date
2025-12-19
Estimated Expiration
2045-11-20

AI Technical Summary

Technical Problem

The existing call system lacks rich interface support, making it difficult to integrate and maintain services, and unable to meet the needs of rapid business iteration.

Method used

It adopts a clustered and service governance architecture, and manages cluster instance information such as call control and media servers through a unified registration center. The load balancer intelligently allocates outbound requests based on instance status. Call control and media servers work together to achieve dynamic service registration and status monitoring, support dynamic expansion and fault self-healing, and simplify operation and maintenance and business integration.

Benefits of technology

It improves the system's scalability and availability, reduces the risk of single points of failure, lowers operational complexity, supports rapid business iteration, and enhances the user and agent call experience as well as the system's concurrent processing capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121173786A_ABST
    Figure CN121173786A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a calling system, which relates to the technical field of computer software and information, and comprises a calling control cluster, a media server cluster, a load balancer and a registration center, the registration center is used for registering information of each cluster in the call control cluster and information of each cluster in the media server cluster; the load balancer distributes the call-out service request to a first target call control instance in a call control cluster; the first target call control instance is used for determining a first target media server instance in the media server cluster and sending a target call instruction to the first target media server instance based on the call-out service request; the first target media server instance is used for establishing a bidirectional media stream transmission channel between the first target user and the first target seat in the outgoing call service request. The embodiment of the invention is used for providing a technical scheme for solving the problems that an existing calling system lacks abundant interface support and is not easy to carry out service integration and operation and maintenance.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of computer software and information technology, and in particular to a call system. BACKGROUND

[0002] A call system (also known as a call center system or a customer service system) is a comprehensive communication and business management system that enables efficient interaction between an enterprise and a customer (or user) through multiple channels such as telephone, online chat, etc. It is a core tool for enterprises to carry out customer service, sales and marketing, business consultation, etc. It usually includes incoming and outgoing services. Incoming service is when a user calls into the platform, which can be divided into one-to-one and one-to-many according to the service mode.

[0003] In a one-to-one scenario, each agent has a fixed incoming number, and no matter which user calls this incoming number, it will be served by this agent. In a one-to-many scenario, each incoming number is served by multiple agents, and when a user calls the incoming number, an agent is selected from the multiple agents to serve the user according to the allocation strategy. Outgoing service is when an agent calls a user, including automatic outbound and manual outbound.

[0004] However, the existing call system lacks rich interface support, making it difficult to integrate and maintain the business, and unable to meet the rapid iteration of the business. SUMMARY

[0005] The present application provides a call system to solve the problem that the existing call system lacks rich interface support, making it difficult to integrate and maintain the business, and unable to meet the rapid iteration of the business.

[0006] In a first aspect, the present application provides a call system, which comprises: a call control cluster, a media server cluster, a load balancer and a registration center; The registration center is used to register information of each cluster in the call control cluster and each cluster in the media server cluster; The load balancer is used to distribute an outgoing service request sent by a front-end interactive interface to a first target call control instance in the call control cluster, wherein the first target call control instance is a call control instance in an online state in the call control cluster; The first target call control instance is used to determine a first target media server instance in the media server cluster based on state information of each media server instance in the media server cluster in the registration center, and send a target call instruction to the first target media server instance based on the outgoing service request; The first target media server instance is configured to establish a two-way media stream transmission channel between the first target user and the first target agent in the outbound service request according to media parameters in the target call instruction.

[0007] Based on the above, the embodiment of the present application provides a call system, which comprises a call control cluster, a media server cluster, a load balancer and a registration center; the registration center is configured to register information of each cluster in the call control cluster and information of each cluster in the media server cluster.

[0008] Based on this, the call control cluster and the media server cluster in the embodiment of the present application are deployed in multiple instances, and the registration center registers information of each cluster managed by the cluster, so that the registration center can dynamically increase or decrease the number of instances according to the business volume, so as to solve the problems of difficult expansion and obvious bottleneck of the traditional single-node system, and support the expansion of the business scale. In the embodiment of the present application, the load balancer distributes the outbound service request to the first target call control instance which is online and has sufficient resources, and in combination with real-time monitoring of the cluster state by the registration center, service interruption caused by single-instance failure can be avoided, the overall availability of the system is improved, and the risk of single-point failure is reduced.

[0009] In addition, based on the unified registration of the instance information of each cluster by the registration center, the operation and maintenance personnel do not need to manually maintain the calling relationship between instances (when a new instance is added or an offline instance is added, the registration center automatically synchronizes the state), thereby reducing the operation and maintenance complexity; at the same time, the cluster deployment supports partial instance upgrading and partial instance normal service, thereby avoiding service interruption during the upgrading process.

[0010] In the embodiment of the present application, the call control, media service, load balancing and other functional modules are decoupled through standardized interfaces, when the business demand changes, the corresponding modules can be upgraded individually, without the need to reconstruct the system as a whole, thereby meeting the demand of rapid iteration of the business.

[0011] Furthermore, in the embodiment, the first target call control instance is configured to determine the first target media server instance based on state information of each media server instance of the media server cluster in the registration center, and send a target call instruction to the first target media server instance based on the outbound service request; and the first target media server instance is configured to establish a two-way media stream transmission channel between the first target user and the first target agent in the outbound service request according to media parameters in the target call instruction.

[0012] Based on the above description, the first target call control instance selects the optimal first target media server instance through the state information of each media server instance in the media server cluster, ensures the efficiency of media stream processing (such as bidirectional audio and video transmission), reduces the call delay or failure probability, and improves the call experience of users and agents. The call control cluster focuses on call logic scheduling (such as instance selection and instruction generation), and the media server cluster focuses on media stream channel establishment. The two have separated responsibilities and interact through standardized instructions, can handle multiple outbound call requests in parallel, and improve the concurrent processing capability of the system.

[0013] Finally, in the embodiment of the present application, service discovery and invocation are realized through the linkage of the registration center to the load balancer, and a standardized internal service interaction mechanism is constructed. This mechanism can be further extended as an external interface, facilitating integration with enterprise CRM (Customer Relationship Management), ticket system and other business systems, to solve the problems of insufficient interface support and integration difficulty of existing systems. BRIEF DESCRIPTION OF DRAWINGS

[0014] Figure 1 A structural schematic diagram of a call system provided by an embodiment of the present application is provided. Figure 2 An interaction flowchart of an outbound scenario of a call system provided by an embodiment of the present application is provided. Figure 3 An interaction flowchart of an inbound scenario of a call system provided by an embodiment of the present application is provided. Figure 4 A specific structural schematic diagram of a call system provided by an embodiment of the present application is provided. DETAILED DESCRIPTION

[0015] A call system (also called a call center system or a customer service system) is a comprehensive communication and business management system that realizes efficient interaction between enterprises and customers (or users) through multiple channels such as telephone, online chat, etc. It is the core tool for enterprises to carry out customer service, sales and marketing, business consultation, etc. It usually includes inbound and outbound services. Inbound service is that users call into the platform, which can be divided into one-to-one and one-to-many according to the service mode.

[0016] In a one-to-one scenario, each agent has a fixed incoming line number, and no matter which user dials this incoming line number, it will be served by this agent. In a one-to-many scenario, each incoming line number is served by multiple agents, and when a user dials an incoming line number, an agent is selected to serve the user according to the allocation strategy. Outbound service is that agents call users, including automatic outbound and manual outbound.

[0017] However, the existing call system lacks rich interface support, is not easy to integrate and maintain, and cannot meet the rapid iteration of business.

[0018] Therefore, the technical concept of the embodiments of the present application is to provide a cluster and service management architecture to solve the problems of insufficient interface, difficult integration and maintenance, and slow iteration of the existing call system. The registration center is used to uniformly manage the cluster instance information of the call control and media server, realize service dynamic registration and state monitoring, the load balancer is used to intelligently distribute outgoing call requests based on the instance state, and the call control and media server are used to work together, the former is responsible for scheduling and decision-making, and the latter is responsible for processing media stream, so as to improve the scalability by decoupling the components. The overall design supports dynamic expansion and fault self-recovery, simplifies operation and maintenance and business integration, and meets the rapid iteration requirement.

[0019] In the following, the technical solutions shown in the present application will be described in detail through specific embodiments. It should be noted that the following embodiments can exist independently or be combined with each other, and the same or similar contents will not be repeated in different embodiments.

[0020] With reference to Figure 1 , in a first aspect, the embodiments of the present application provide a call control cluster, a media server cluster, a load balancer and a registration center; The registration center is used to register the information of each cluster in the call control cluster and each cluster in the media server cluster; The load balancer is used to distribute the outgoing service request to a first target call control instance in the call control cluster in response to the outgoing service request sent by the front-end interactive interface; wherein the first target call control instance is a call control instance in the call control cluster in an online state; The first target call control instance is used to determine a first target media server instance in the media server cluster based on the state information of each media server instance in the media server cluster in the registration center, and send a target call instruction to the first target media server instance based on the outgoing service request; The first target media server instance is used to establish a two-way media stream transmission channel between the first target user and the first target agent in the outgoing service request according to the media parameters in the target call instruction.

[0021] In the embodiments of the present application, with reference to Figure 1 The registration center is responsible for uniformly registering the information of each instance (such as IP, port and service type) in the call control cluster and each instance (such as load rate, codec capability and online state) in the media server cluster, and updating the instance state (such as automatically marking when fault or offline) in real time, thereby providing service directory support for other components.

[0022] The load balancer receives the outgoing service request sent by the front-end interactive interface, wherein the outgoing service request comprises a first target user number, a first target agent identifier, a service type, etc., and based on the call control cluster instance state synchronized by the registration center, a first target call control instance in an online state and with sufficient resources is screened out, and the request is distributed to the first target call control instance, so as to avoid forwarding the request to a faulty instance.

[0023] The first target call control instance obtains real-time state information of each instance of the media server cluster from the registration center, such as current call volume, resource utilization, and supported media format, and screens out a first target media server instance that is suitable for the current outgoing service; then, a target call instruction is generated based on the outgoing service request and is sent to the first target media server instance.

[0024] For example, the target call instruction contains terminal information of the user and the agent, media parameters such as codec format / transmission port, and a service label.

[0025] The first target media server instance parses the media parameters in the target call instruction, and establishes media links with the terminal (such as a mobile phone or a SIP machine) of the first target user and the front-end interactive interface (adapted after protocol conversion) of the first target agent, respectively; by negotiating unified media formats of both parties, a bidirectional audio and video stream transmission channel between the user and the agent is finally bridged, and the outgoing call establishment is completed.

[0026] Based on this, the call control cluster and the media server cluster in the embodiments of the present application are deployed in multiple instances, the registration center registers and manages information of each cluster, so that the registration center can dynamically increase or decrease the number of instances according to the business volume, to solve the problems of difficult expansion and obvious bottleneck of the traditional single-node system, and to support the expansion of the business scale. The load balancer only distributes the outgoing service request to the first target call control instance that is online and has sufficient resources, and in combination with the real-time monitoring of the cluster state by the registration center, service interruption caused by single-instance failure can be avoided, the overall availability of the system is improved, and the risk of single-point failure is reduced.

[0027] In addition, the registration center uniformly registers the instance information of each cluster, and the operation and maintenance personnel do not need to manually maintain the calling relationship between instances (when a new instance is added or an offline instance is added, the registration center automatically synchronizes the state), thereby reducing the operation and maintenance complexity; at the same time, the cluster deployment supports partial instance upgrading and partial instance normal service, thereby avoiding service interruption during the upgrading process. The call control, media service, and load balancing function modules are decoupled through standardized interfaces, and when the business demand changes, the corresponding modules can be upgraded individually without the need to reconstruct the system as a whole, thereby meeting the demand for rapid iteration of the business.

[0028] Further, the first target call control instance selects an optimal first target media server instance through state information of each media server instance in the media server cluster, ensures high efficiency of media stream processing (such as bidirectional audio and video transmission), reduces call delay or failure probability, and improves user and agent call experience. The call control cluster focuses on call logic scheduling (such as instance selection and instruction generation), and the media server cluster focuses on media stream channel establishment, the two have separated responsibilities and interact through standardized instructions, can process multiple outbound requests in parallel, and improve the concurrent processing capability of the system.

[0029] Finally, in the embodiment of the application, service discovery and calling are realized through linkage of the registration center to the load balancer, and a standardized internal service interaction mechanism is constructed. This mechanism can be further extended as an external interface, facilitating integration with enterprise CRM, work order systems and other business systems, to solve the problems of insufficient interface support and integration difficulty of existing systems.

[0030] In an optional implementation, the outbound service request is generated by the first target agent after performing a specific operation on a front-end interaction interface; wherein the outbound service request comprises information of the first target user, an identifier of the first target agent and a business type.

[0031] In the embodiment of the application, the first target agent generates an outbound service request after performing a series of specific operations on a front-end interaction interface (such as a customer service workbench or a Web agent terminal). The specific operations include: the agent queries the first target user's profile on the front-end interface (such as selecting the user from a customer list associated with the CRM system), clicks the outbound button, selects a business type label for this outbound (such as manually checking after-sales follow-up, product promotion, etc.), and after the operation is completed, the front-end interface submits the request to the load balancer through a preset interface.

[0032] The information of the first target user includes a unique identifier of the user (such as a mobile phone number, a fixed-line number), basic attributes (such as a home address, a user level label), and a summary of historical interaction records (such as inquiring about order problems three days ago), which provides a user portrait basis for subsequent call processing.

[0033] The identifier of the first target agent includes an agent number, a team to which the agent belongs (such as a post-sale team), and a skill label (such as being good at handling order disputes), which is used for the system to trace the outbound subject and match corresponding permissions; the business type of the first target agent is used to clarify the business scenario of this outbound (such as after-sales problem follow-up, new function recommendation, and satisfaction survey), which can be used as a basis for the call control instance to dispatch media resources and execute business logic.

[0034] Based on the above description, the outbound service request is generated by the agent's active operation, and contains user information, agent identification and service type, avoiding blind outbound without clear subject or scene, ensuring that each outbound corresponds to specific user demand or business target (such as after-sales follow-up only for users with historical problems), and improving outbound efficiency and quality.

[0035] The user label, agent skill, service type and other information carried in the outbound request can be directly used by the call control instance for media server selection, call logic adaptation (such as enabling the recording quality inspection function in the sales scene), reducing the information query cost of subsequent processes and accelerating the call establishment efficiency.

[0036] The agent generates the request through visual operation (such as selecting users and selecting service types) of the front-end interactive interface, without the need for manual input of complex parameters, reducing the operation threshold; at the same time, the front-end interface is linked with business systems such as CRM (such as directly initiating outbound from the customer list), realizing seamless connection of business data to outbound operation, and strengthening the business empowerment ability of the system.

[0037] The outbound request has clear request information composition (user information, agent identification, service type) to form a standardized interface specification, facilitating the interaction of front-end interactive interface, call control cluster, media server and other modules in a unified format; when a new service type is added, only the service type field and the corresponding logic need to be expanded, without the need to reconstruct the request generation and analysis mechanism, supporting rapid iteration of business.

[0038] Optionally, referring to Figure 1 , the system further comprises a SIP registration server cluster and a protocol conversion gateway cluster; The registration center is further configured to register information of each cluster in the SIP registration server cluster and each cluster in the protocol conversion gateway cluster; The first target media server instance is further configured to generate a first call signaling of the first target agent according to the target call instruction, and send the first call signaling to a first target SIP registration server instance in the SIP registration server cluster; The first target SIP registration server instance is configured to determine a first target protocol conversion gateway instance in the protocol conversion gateway cluster based on the registration state information and the registration location of the first target agent, and route the first call signaling to the first target protocol conversion gateway instance; The first target protocol conversion gateway instance is configured to convert the first call signaling into a protocol recognizable by the first front-end interactive interface, and forward the protocol-converted first call signaling to the first front-end interactive interface; The first front-end interactive interface is configured to automatically answer the protocol-converted first call signaling, start collecting audio and video information of the first target agent, and generate target media parameters, and return the target media parameters to the first target media server instance through the first target protocol conversion gateway and the first target SIP registration server instance. The first target media server instance is further configured to establish a first media stream transmission sub-channel with the first front-end interactive interface according to the target media parameters, and the first media stream transmission sub-channel is configured to transmit audio and video data of the first target agent.

[0039] In the embodiments of the present application, the registration center is further configured to synchronize registration of information of a SIP registration server cluster (IP, service port, and load state of each instance) and a protocol conversion gateway cluster (protocol types supported by each instance, such as SIP to WebSocket, and resource usage rate), and provide unified support for service discovery and state awareness of the whole link.

[0040] After the first target media server instance analyzes the target call instruction, the first target media server instance generates a first call signaling (such as SIP INVITE, containing an agent identifier and initial media negotiation parameters) for the first target agent, and sends the signaling to a first target SIP registration server instance in a SIP registration server cluster in a healthy state based on information of the registration center.

[0041] Then, the first target SIP registration server instance queries first target agent registration state information (such as whether online or not, and last registration time) and a registration location (that is, a protocol conversion gateway address and port associated with the agent when logging in) stored locally, matches a corresponding first target protocol conversion gateway instance from a protocol conversion gateway cluster, and routes the first call signaling to the instance.

[0042] After the first target protocol conversion gateway instance receives the SIP-formatted first call signaling, the first target protocol conversion gateway instance converts the signaling into a protocol (such as WebSocket protocol, which is suitable for real-time communication requirements of a browser end) recognizable by a first front-end interactive interface (such as a Web agent end), and forwards the converted signaling to the first front-end interactive interface.

[0043] The first front-end interactive interface responds to the converted signaling, automatically performs an answering operation (without manual triggering by the agent, simplifying the operation), starts an audio and video collection module (calling a browser camera and microphone), generates target media parameters (such as audio coding format G.711, video coding H.264, local IP and transmission port) on the agent side, and returns the parameters to the first target media server instance through the first target protocol conversion gateway (converted into SIP protocol in reverse) and the first target SIP registration server instance.

[0044] The first target media server instance establishes, based on the returned target media parameters, a first media stream transmission sub-channel with the first front-end interactive interface through the first target protocol conversion gateway, the sub-channel being specially used for transmitting audio and video data (such as voice collected by a microphone and video captured by a camera) of the first target agent in real time, and providing a basis for subsequent bridging with a user-side media stream.

[0045] Based on the above description, the protocol conversion gateway cluster realizes bidirectional conversion between SIP and WebSocket (a web front-end protocol), so that a browser-based front-end interactive interface can communicate with a media server and a registration server based on the SIP protocol seamlessly, the limitation of incompatibility between a traditional communication protocol and a web terminal is broken through, and an agent can access the system through a computer, a mobile phone browser or other lightweight terminals, and the terminal adaptation range is expanded.

[0046] The SIP registration server cluster routes a signaling based on location information (an associated protocol conversion gateway) recorded when an agent registers, avoids blind forwarding of the signaling in the cluster, synchronizes states of all instances in real time at the same time, ensures that the signaling is routed to only a healthy instance, reduces loss or delay of the signaling, and improves processing efficiency of a call signaling on an agent side.

[0047] The SIP registration server and the protocol conversion gateway are deployed in a cluster, and in combination with dynamic registration and state monitoring of the registration center, can be expanded elastically (new instances are automatically connected to the cluster) as the number of agents grows; when an instance fails, the registration center quickly marks the instance and guides traffic to a healthy instance, guarantees continuity of a call link on an agent side, and supports a large-scale concurrent scenario.

[0048] In an optional implementation, the first target media server instance is further configured to: after the first call signaling is generated, send an agent call start event to the first target call control instance; after the first target protocol conversion gateway instance is configured to forward the converted call instruction to the first front-end interactive interface, and after the first front-end interactive interface enters an agent ringing state, send an agent ringing event to the first target call control instance; after the target media parameters are received, send an agent answer event to the first target call control instance; after the media stream transmission channel is established with the first front-end interactive interface, send a user call start event to the first target call control instance; the user call start event is used to represent that audio and video media streams of the first target agent and a first target user start bidirectional transmission; the first target call control instance is further configured to: in response to the agent call start event, synchronously recording a call start timestamp of the first target agent; in response to the agent ring event, synchronously recording a ring timestamp of the first target agent; in response to the agent answer event, synchronously recording an answer timestamp of the first target agent; in response to the user call start event, synchronously recording a call start timestamp of the first target user.

[0049] In the embodiments of the present application, the first target media server instance and the first target call control instance realize real-time synchronization and data recording of the whole-link state of the outgoing call process through the event triggering and timestamp recording mechanism, and the specific interaction is as follows: After the first target media server instance generates the first call signaling (for calling the first target agent), the agent call start event (carrying the agent identifier and the signaling generation time) is immediately sent to the first target call control instance. The first target call control instance responds to the event and synchronously records the call start timestamp of the first target agent, marking that the call signaling on the agent side has been initiated.

[0050] When the first target protocol conversion gateway instance forwards the converted call instruction to the first front-end interactive interface, and the front-end interface enters the agent ring state (such as interface pop-up and ring tone prompt), the first target media server instance monitors the ring state and sends the agent ring event (carrying the agent identifier and the ring start time) to the first target call control instance. The first target call control instance responds to the event and records the ring timestamp of the first target agent, marking that the agent end has started the ring prompt.

[0051] After the first target media server instance receives the target media parameters (indicating that the agent has completed the audio and video collection preparation) returned by the first front-end interactive interface, the agent answer event (carrying the agent identifier and the parameter receiving time) is sent to the first target call control instance. The first target call control instance responds to the event and records the answer timestamp of the first target agent, marking that the agent has completed the answer preparation.

[0052] When the first target media server instance and the first front-end interactive interface successfully establish the first media stream transmission sub-channel (the agent side audio and video stream starts to be transmitted), and the media link with the first target user terminal has also been established (the user side audio and video stream starts to be transmitted), at this time, the media server sends the user call start event (carrying the user identifier, the agent identifier and the bidirectional stream start time) to the first target call control instance, indicating that the audio and video streams of both parties have realized bidirectional transmission. The first target call control instance responds to the event and records the call start timestamp of the first target user, marking that the call formally enters the interactive phase.

[0053] Based on the above description, the embodiments of the present application record each key node (signaling initiation, ringing, answering, streaming) from the call initiation of the agent to the start of the call between the two parties through event triggering and timestamp, forming a complete process log. The operation and maintenance personnel can locate the process card points (such as the long ringing-to-answering time delay may be due to slow response of the agent or media parameter negotiation delay) through the timestamp sequence, quickly troubleshoot call failure, delay and other problems, and improve the operation and maintenance efficiency.

[0054] The timestamp data can provide quantitative basis for service quality evaluation. For example, by statistically analyzing the average ringing time of the agent, the efficiency of the agent response can be optimized; by analyzing the total call setup time of different service types, the performance bottleneck of the media server or the protocol conversion gateway can be identified, and the resource configuration can be optimized accordingly.

[0055] Furthermore, the timestamp data can be linked with the service rules (such as if the ringing time exceeds 30 seconds without answering, the call will be automatically transferred to other agents), and the call control instance can calculate the waiting time based on the recorded ringing timestamp in real time, trigger the automatic process, and avoid the delay caused by manual intervention. At the same time, the complete time record can be used as an objective basis for the performance evaluation of the agent (such as the answering speed and the efficiency of call preparation), and promote the standardization of service.

[0056] The first target media server instance and the first target call control instance are bound by events and timestamps, ensuring that the state cognition of both parties to the same process node is consistent (such as the media server confirms the ringing and the call control records the ringing time), avoiding the confusion of business logic caused by different states (such as the agent has answered but the system still determines that it is in ringing), and improving the reliability of cross-module collaboration.

[0057] Optionally, referring to Figure 1 , the system further comprises a call gateway cluster; The first target call control instance is further configured to determine a first target call gateway instance in the call gateway cluster based on the attribute information of the first target user in the outgoing service request, and in combination with the load state and line adaptability of each call gateway instance in the call gateway cluster; The first target media server instance is further configured to generate a second call signaling of the first target user according to the target call instruction, and send the second call signaling to the first target call gateway instance; The first target call gateway instance is configured to convert the second call signaling to a protocol format supported by an external line vendor, and route the second call signaling after protocol conversion to the external line vendor to request the external line vendor to initiate a call to the first target user.

[0058] In this embodiment, the complete link of the system internal call request to the external line provider interface is also established, and the call initiation to the first target user is realized, and the specific process is as follows: The first target call control instance parses the first target user attribute information (such as user number home location, number belonging to the operator, number type) in the outgoing service request, and simultaneously obtains the real-time state of each instance of the call gateway cluster through the registration center, including the load state (such as the current processing call volume, CPU / memory usage) and the line adaptability (such as whether to support XX line, whether to cover the communication link of XX area, and the supported external protocol type). Based on the above information, the instance with the lowest load and the highest matching degree with the user attribute is selected as the first target call gateway instance.

[0059] Then, the first target media server instance generates a second call signaling (such as SIP INVITE, carrying the user number and the initial media parameter on the system side) for the user based on the target call instruction (containing the first target user number and the media negotiation parameter), and sends the signaling to the determined first target call gateway instance.

[0060] After the first target call gateway instance receives the second call signaling (mostly SIP protocol in the system internal), the second call signaling is converted into the protocol format supported by the line provider according to the preconfigured external line provider protocol specification, and additional information required by the line provider is supplemented. Subsequently, the converted second call signaling is routed to the corresponding external line provider, requesting it to initiate a call to the terminal (such as a mobile phone or a fixed phone) of the first target user (i.e. triggering the user terminal to ring).

[0061] Based on the above description, the call gateway cluster undertakes the protocol conversion function, converts the unified SIP signaling in the system internal into the adaptive protocol of the external line provider, solves the limitation of incompatible protocols between the system and different line providers, makes the system flexible to interface with multiple line providers, and avoids single line dependence.

[0062] The call gateway is deployed in a clustered manner, and cooperates with the dynamic state management of the registration center, so that the elastic expansion (newly added gateway instances are automatically registered and undertake traffic) can be realized according to the business volume (such as the outgoing call peak value); when a certain gateway instance fails or the line is interrupted, the system can quickly switch to other healthy instances, ensuring the communication continuity with the external line provider and supporting large-scale concurrent outgoing call scenarios.

[0063] The call gateway cluster centrally processes the protocol adaptation and line configuration (such as number authentication and routing rules) with the external line provider, the internal system (media server and call control) does not need to care about the external protocol details, only interacts with the gateway through a standardized interface, which reduces the development cost of the system and the new line provider interface; at the same time, the line state and load condition of each gateway can be monitored by the operation and maintenance personnel through the cluster management interface, which simplifies the line fault troubleshooting and resource adjustment process.

[0064] Optionally, the first target call gateway instance is further configured to receive the ring response returned by the external line provider, and return the ring response to the first target media server instance; The first target media server instance is further configured to send a user ring event to the first target call control instance after receiving the ring response; The first target call control instance is configured to record a ring timestamp of the first target user in response to the user ring event, and publish the ring event of the first target user to the load balancer; The load balancer is configured to forward the ring event of the first target user to the first front-end interactive interface; The first front-end interactive interface is configured to publish the ring event of the first target user to the first target agent.

[0065] In the embodiments of the present application, after the external line provider initiates a call to the first target user (e.g., the user's mobile phone starts ringing), the ring response (protocol format adapted to the line provider) containing the user identifier, ring start time, etc. is returned to the first target call gateway instance. The first target call gateway instance converts the ring response into a system-internal compatible format (e.g., uniformly converted into an SIP protocol message), and forwards it to the first target media server instance, informing the first target media server instance that the user terminal has started ringing.

[0066] After the first target media server instance receives the ring response, it parses the user ring state, generates a user ring event (carrying the first target user identifier, ring response receiving time, line provider information), and sends the event to the first target call control instance, synchronizing the real-time state of the user side.

[0067] The first target call control instance responds to the user ring event and immediately records the ring timestamp of the first target user, which is used to mark the node at which the user starts ringing. At the same time, to ensure that the agent is aware of the user state in real time, the call control instance publishes the ring event of the first target user (containing the user identifier and ring timestamp) to the load balancer, requesting forwarding to the front-end interactive interface of the first target agent.

[0068] The load balancer queries the front-end interface instance state (e.g., online, bound agent number) recorded by the registration center based on the first target agent identifier (associated with the first front-end interactive interface) carried in the event, and directs the user ring event to the first front-end interactive interface. After receiving the event, the first front-end interactive interface publishes a notification (e.g., the interface displays that the user is ringing, please wait to answer) to the first target agent in a visual manner, informing the first target agent that the user side has started ringing and needs to prepare for the subsequent call.

[0069] Based on the above description, the embodiments of the present application ensure that the agent can perceive the state at the same time as the user terminal rings, avoid passive waiting caused by information lag, facilitate the agent to prepare user information in advance, analyze communication skills, and improve service professionalism.

[0070] The user ringing timestamp recorded by the first target call control instance, together with the aforementioned time stamps of the first target agent call start, ringing, and answering, constitutes a complete call process timeline. Through the timeline, the time consumption of each link can be quantified, providing data basis for optimizing line quality and media server response speed.

[0071] The ringing event passes through the standardized transmission link of the call gateway, media server, call control, load balancing, and front-end interface, ensuring that all components of the system are consistent in recognizing the user ringing state, avoiding business logic errors caused by asynchronous states, and improving the stability of cross-module collaboration of the system.

[0072] In an optional implementation, the first target call gateway instance is further configured to receive an answering response returned by the external line provider and return the answering response to the first target media server instance; The first target media server instance is further configured to send a user answering event to the first target call control instance after receiving the answering response; The first target call control instance is configured to record a response timestamp of the first target user in synchronization and publish an answering event of the first target user to the load balancer in response to the user answering event; The load balancer is configured to forward the answering event of the first target user to the first front-end interactive interface; The first front-end interactive interface is configured to publish the answering event of the first target user to the first target agent.

[0073] In the present embodiment, information transmission from confirmation of user answering by the external line provider to real-time perception by the agent is realized, and the specific steps are as follows: When the first target user answers the call, the external line provider returns an answering response to the first target call gateway instance, which contains user identification, answering time, terminal media capability, and other information. The first target call gateway instance converts the answering response into a format compatible with the system and forwards it to the first target media server instance, informing that the user has completed the answering action.

[0074] After receiving the answer response, the first target media server instance parses the user answer state and terminal media parameters, generates a user answer event (carrying the first target user identifier, answer response receiving time, and user terminal media capability digest), and sends the event to the first target call control instance to synchronize the key state change on the user side.

[0075] The first target call control instance responds to the user answer event and immediately records the answer timestamp of the first target user to mark the node at which the user completes the answer. Meanwhile, to ensure that the agent learns that the user has been connected in time, the call control instance publishes the answer event of the first target user to the load balancer to request forwarding to the first front-end interactive interface of the first target agent.

[0076] Finally, the load balancer queries the registered center for the state (such as online or binding relationship) of the first front-end interactive interface based on the first target agent identifier carried in the event, and directs the forwarding of the user answer event to the first front-end interactive interface. After receiving the event, the first front-end interactive interface publishes a notification (such as displaying that the user has answered and the call interface can be switched from waiting to in-call state) to the first target agent in a visual manner to inform the agent that the user has been connected and the interaction can be formally started.

[0077] Based on the above description, the embodiments of the present application confirm the full-link transmission from the user answer confirmed by the external line provider to the notification received by the agent, ensure that the agent can perceive the user answer instantly, avoid the communication gap caused by information lag, guarantee the naturalness of call connection, and improve the user experience.

[0078] In an optional implementation, the first target media server instance is further configured to, after receiving the first target agent hang-up instruction forwarded by the first front-end interactive interface, terminate the media stream transmission with the first target agent, and generate a first target agent hang-up event and publish the first target agent hang-up event to the first target call control instance. The first target call control instance is further configured to, in response to the first target agent hang-up event, synchronously record a hang-up timestamp of the first target agent.

[0079] In the embodiments of the present application, the complete link from the agent operation to the system state synchronization and data recording is implemented, and the specific steps are as follows: After completing the call with the first target user, the first target agent performs a hang-up operation through the first front-end interactive interface, the front-end interface generates a first target agent hang-up instruction (containing the agent identifier and operation timestamp), and forwards the instruction to the first target media server instance through the protocol conversion gateway (the instruction format is adapted to the media server protocol, such as the SIP BYE signaling).

[0080] After the first target media server instance receives the agent hang-up instruction, the following operations are performed: terminating the media stream transmission sub-channel with the first target agent; generating a first target agent hang-up event, which carries the agent identifier, media stream termination time, call duration (calculated based on the agent answering timestamp and the current time), and other key information; publishing the hang-up event in a standardized format (such as a system internal event protocol) to the first target call control instance, synchronizing the call termination state on the agent side.

[0081] Finally, the first target call control instance responds to the first target agent hang-up event and records the hang-up timestamp of the first target agent. This timestamp, together with the previously recorded agent call start, ringing, and answering timestamps, forms complete agent-side call lifecycle data.

[0082] Based on the above description, the media server immediately terminates the media stream transmission and releases resources such as ports and bandwidth after receiving the hang-up instruction, avoiding invalid resource occupation due to the agent having hung up but the stream still being transmitted. At the same time, the hang-up event is synchronized to the call control instance, ensuring that all components of the system (such as call control and front-end interface) are aware of the call termination state, avoiding subsequent misoperations.

[0083] The agent hang-up timestamp combined with the previous timestamps at each stage can accurately calculate the actual call duration of the agent, providing core data for customer service performance evaluation and business cost accounting. At the same time, the complete time sequence can be used to trace the call process, meeting the service quality monitoring requirements.

[0084] Optionally, referring to Figure 1 , the system further includes a business cluster; The registration center is further configured to register information of each business instance in the business cluster; The first target call control instance is further configured to, after synchronously recording the hang-up timestamp of the first target agent, generate a call record between the first target agent and the first target user, and send the call record to a target business instance in the business cluster; The target business instance is configured to format convert the call record and push the format-converted call record to an external business backend system through a preset interface.

[0085] In the embodiments of the present application, a standardized link from call record generation to business system integration is constructed, and the specific process is as follows: The registration center adds information registration and maintenance of business clusters, records the information of each business instance, including instance IP address, service port, supported business type, current load state (such as CPU usage, number of records to be processed), and interface adaptation capability. The registration center updates the instance state in real time (such as automatically registering new instances and marking failed instances as unavailable), providing precise service discovery support for call control instances.

[0086] After recording the hang-up timestamp of the first target agent, the first target call control instance integrates the whole process data to generate a structured call record, including: Basic identification: call unique ID, user number, agent ID, call type; Time dimension: timestamps of each link (call start, ringing, answering, hanging up), total call duration, and effective communication duration; Business dimension: business type in outgoing service request, carrier information, and call state (normal hang-up); Associated data: agent skill label, and user level label (such as VIP).

[0087] Subsequently, the first target call control instance queries the real-time information of the business cluster through the registration center, determines the target business instance based on the business type matching degree (such as after-sales follow-up, records are preferentially allocated to instances supporting this type) and load balancing (selecting idle instances) principles, and sends the call record.

[0088] After receiving the call record, the target business instance performs the following operations: Format adaptation: converting the internal system format to the format required by the external business backend system according to the preset rules, including field mapping, time format conversion, and structure reorganization; Processing: further desensitizing sensitive information and supplementing metadata required by external systems (such as push system identifier and data verification code); Push: pushing the converted record to the external business backend system through the preset interface and receiving the return confirmation (such as API response 200OK and message queue ACK) to ensure data is not lost; if the push fails, trigger the retry mechanism (according to the exponential backoff strategy).

[0089] Based on the above description, the registration center uniformly registers and monitors the business cluster, enabling the call control instance to dynamically discover available business instances and accurately allocate tasks based on real-time load and business adaptability, avoiding single instance overload and improving the overall efficiency of call record processing; at the same time, when the business instance fails, it automatically switches to a healthy node, ensuring the continuity of data flow.

[0090] The format conversion function of the target service instance shields the format difference between the call system and the external service backend system. Through configurable conversion rules, the core call system can be quickly connected to the external system without modification, solving the high cost problem of one system and one development in traditional integration.

[0091] The call record contains full link timestamps and service attributes, and after conversion, the analysis dimensions (such as call duration and service type) are still retained, providing complete data support for external systems. At the same time, the desensitization processing and push receipt mechanism meet the requirements of data security regulations and reduce compliance risks.

[0092] In addition, the service cluster adopts distributed deployment, combined with the dynamic expansion and contraction support of the registration center, can flexibly increase instances (new instances are automatically registered and undertake tasks) as the call volume grows, without stopping service to complete expansion, supporting large-scale call record processing requirements in high-concurrency scenarios.

[0093] Figure 2 An interaction flow diagram of an outgoing call scenario of a call system is shown. Referring to Figure 2 , the process of the outgoing call scenario of the call system can include the following steps: The service front-end interface as the process initiator, the agent triggers the outbound call operation, calls the outbound call method of the SDK, and sends an outbound call request containing the called number, line code, and extended data to the load balancer.

[0094] The load balancer receives the request and forwards it to the first target call control instance.

[0095] The first target call control instance executes the creation of the agent outbound call, selects the media server, executes the service outbound call logic, completes the local initialization, asynchronously calls the first target media server instance and returns the call id (used for uniquely identifying the call in the full link), and the call id is synchronized to the service front-end interface through the load balancer.

[0096] The first target media server instance sends a SIP INVITE signaling (requiring the agent to automatically answer) to the first target SIP registration server instance, carrying the agent identifier and initial media negotiation parameters.

[0097] The first target SIP registration server instance queries the agent registration location and routes the INVITE to the first target protocol conversion gateway instance.

[0098] The first target protocol conversion gateway instance converts the SIP signaling into a protocol (such as WebSocket) recognizable by the agent front-end interface, forwards it to the service front-end interface through the load balancer, and triggers the agent to ring.

[0099] The service front-end interface (agent terminal) identifies the automatic connection mark, automatically answers and collects media parameters (generates SDP), and returns SIP 183 (session progress), SIP 200 OK (accept session) in sequence to the first target media server instance through the first target protocol conversion gateway instance and the first target SIP registration server instance.

[0100] The first target call control instance publishes a call start event, a ringing event, and an answer event to the service front-end interface, and asynchronously updates the call start time, the ringing time, and the answer time on the agent side.

[0101] The first target media server instance sends a SIP INVITE signaling (inviting a user terminal to establish a session) carrying a user number and media parameters to the first target call gateway instance.

[0102] The first target call gateway instance converts the SIP signaling into a protocol supported by the line provider, routes to the line provider, triggers the user terminal to ring, and initiates a call to the user terminal. After the user answers, the SIP 200 OK is returned to the first target media server instance through the call gateway.

[0103] Two-way media stream establishment: The first target media server instance bridges the media stream channels of the agent and the user based on the media negotiation results (such as unified codec format) of the agent and the user, realizes two-way audio and video transmission from the agent to the media server and from the media server to the user, publishes a user call start event, a ringing event, and an answer event, and synchronously updates the call start time, the ringing time, and the answer time on the user side.

[0104] Call end and resource release: Either the agent or the user initiates a hang-up (such as agent operation or user terminal hang-up), sends a SIP BYE signaling, and returns to the first target media server instance through the corresponding link. The media server releases media resources, publishes a hang-up event to the first target call control instance, and asynchronously updates the call hang-up time on the agent and user sides.

[0105] Call record archiving: The first target call control instance publishes an agent call end event. After the target service instance consumes the event, it formats the call record, pushes the call record to the service back-end system through an interface call, and completes data persistent storage.

[0106] The above describes the content of the call system outgoing request, and the following describes the call system incoming request.

[0107] In an alternative embodiment, the second target call gateway instance is further configured to receive incoming signaling of a second target user forwarded by the external line carrier, and determine a second target media server instance in the media server cluster based on the state information of each media server instance in the media server cluster, and route the incoming signaling to the second target media server instance; The second target media server instance is configured to publish an incoming event to a second target call control instance in the call control cluster based on the incoming signaling; The second target call control instance is configured to determine a second target agent in response to the incoming event, and send call second target agent signaling to the second target media server instance; The second target media server instance is further configured to forward the call second target agent signaling to the SIP registration server; The SIP registration server is configured to route the call second target agent signaling to a second target protocol gateway instance in the protocol conversion gateway cluster based on the registration location information of the second target agent; The second target protocol gateway instance is configured to convert the second target agent signaling into a protocol recognizable by the second front-end interactive interface, and route the converted signaling to the load balancer; The load balancer is configured to route the converted signaling to the second target front-end interactive interface based on the identity of the second target agent, to trigger a second agent ring reminder.

[0108] In the embodiments of the present application, the second target call gateway instance receives incoming signaling of a second target user forwarded by the external line carrier (including user number, incoming time, line type, etc., and the protocol format is the type supported by the line carrier). Based on the state information of each instance of the media server cluster synchronized by the registration center (such as load rate, media resource availability, and supported codec capability), the target call gateway instance selects a second target media server instance with low load and sufficient resources, converts the incoming signaling into a system internal compatible format, and routes it to the second target media server instance.

[0109] The second target media server instance analyzes the incoming signaling and extracts the information of the second target user (such as number, home location, and historical incoming label), generates an incoming event (carrying user identity, incoming signaling receiving time, and media server instance ID), and publishes the event to a second target call control instance in the call control cluster that is in a healthy state.

[0110] Afterwards, the second target call control instance responds to the incoming call event, determines the second target agent from the agent resource pool based on preset allocation strategies (such as the matching degree of the user service tag and the agent skill tag, the idle state of the agent, and the historical service correlation), generates call second target agent signaling (containing the agent identifier, user information, and initial media negotiation parameters), and sends it to the second target media server instance.

[0111] The second target media server instance forwards the call second target agent signaling to the SIP registration server cluster. The SIP registration server queries the locally stored second target agent registration location information (i.e., the protocol conversion gateway instance address, port, and protocol type bound during agent login), matches the corresponding second target protocol gateway instance from the protocol conversion gateway cluster, and routes the signaling to the instance.

[0112] After the second target protocol gateway instance receives the SIP format agent call signaling, it converts it into a protocol (such as the WebSocket protocol) that the second front-end interactive interface (agent terminal, such as a Web browser) can recognize, ensuring that the front-end can parse the signaling content.

[0113] The converted signaling is sent to the load balancer, which queries the binding relationship between the agent and the front-end interface recorded in the registration center based on the second target agent identifier carried in the signaling (ensuring routing to the second user front-end interactive interface currently logged in by the agent), and forwards the signaling to the second target front-end interactive interface. After the second user front-end interactive interface receives the signaling, it immediately triggers a ring reminder (such as an interface pop-up window, a ringtone prompt, and a change in the agent state to ringing), notifying the second target agent of a new incoming call.

[0114] Based on the above description, the second target call gateway instance selects an instance based on the real-time state of the second target media server instance, avoiding forwarding signaling to overloaded nodes and reducing signaling processing delay; the second target call control instance determines the second target agent through tag matching and state detection, ensuring that the incoming call is quickly allocated to the appropriate idle agent, shortening user waiting time, and improving incoming call connection efficiency.

[0115] And the second target protocol gateway instance implements the conversion of SIP (system internal protocol) and WebSocket (Web front-end protocol), allowing the second target agent to access the system through lightweight terminals such as browsers and mobile APPs, breaking through the hardware limitations of traditional telephone sets, expanding the adaptation range of agent terminals, and improving system flexibility.

[0116] Further, each component (gateway, media server, call control, protocol gateway) in the embodiments of the present application is based on clustered deployment and state monitoring of the registration center. When a certain instance fails, signaling can be automatically routed to a healthy instance (such as switching the gateway to another instance when the media server fails, and reassigning the agent when the agent terminal is offline), avoiding single-point failure to cause incoming call interruption and improving the overall availability of the system.

[0117] Optionally, the second target front-end interactive interface is further configured to, after triggering the second agent ring reminder, in response to a listening operation of the second target agent, trigger a second agent listening event, and generate second target agent listening response signaling, and return the second target agent listening response signaling to the second target media server instance through the second target protocol conversion gateway instance; The second target media server instance is configured to, according to the second target agent listening response signaling, publish a second agent connection event to the second target call control instance, and update corresponding call data, and establish a two-way media stream transmission channel between the second target user and the second target agent.

[0118] In the embodiments of the present application, a complete closed loop from agent operation to two-way call connection is realized, and the specific steps are as follows: After triggering the second agent ring reminder (such as interface pop-up window, prompt sound), when the second target agent performs a listening operation (such as clicking the interface listening button), the front-end interface immediately triggers a second agent listening event (records the agent operation time and identifier), and generates second target agent listening response signaling. The second target agent listening response signaling contains the agent identifier, the listening operation time, and the agent terminal media capability, and is forwarded to the second target protocol gateway instance through the second target protocol gateway instance to convert the protocol format of the front-end interface into a signaling format compatible with the system (such as SIP 200 OK), and then sends the converted response signaling to the second target media server instance.

[0119] After the second target media server instance receives the second target agent listening response signaling, the agent listening state and terminal media parameters are parsed, and the following operations are performed: Publish a second agent connection event to the second target call control instance, and carry the agent identifier, the listening response signaling receiving time, and the agent terminal media capability summary in the event, and synchronize the key state of the agent that has listened; Update the local call data record, including the agent listening timestamp, the media negotiation initial parameter (such as the encoding and decoding format supported by the agent), and the current call stage (switching from ringing to waiting for media stream establishment).

[0120] The second target media server instance performs media parameter negotiation based on the agent terminal media capability and the media parameters of the terminal of the second target user previously obtained from the target call gateway instance (such as the audio encoding supported by the user's mobile phone). After the negotiation is completed, the media server establishes media stream transmission links with the terminal of the second target user and the front-end interactive interface of the second target agent respectively, and bridges the two links to form a two-way media stream transmission channel from the second target user, the second target media server to the second target agent, thereby realizing real-time interaction of audio and video data between the two parties (such as the user's voice being transmitted to the agent through the channel, and the agent's voice being fed back to the user synchronously).

[0121] Based on the above description, the embodiments of the present application ensure that the second target user and the second target agent can start communication at the moment of answering, avoid silent waiting caused by system delay, and improve the naturalness of the call and user experience, from the full-link response of the second target agent clicking on the second target media server instance to establish a two-way stream.

[0122] Moreover, the second agent connection event is synchronized to the second target call control instance through the second target media server instance, thereby ensuring that the second target call control instance, the second target media server instance, the second front-end interactive interface and other components are consistent in recognizing the state of the second target agent having answered, and avoiding abnormalities caused by asynchronous states.

[0123] The second target media server instance performs parameter negotiation based on the media capabilities of the terminals of the two parties, and transmits audio and video data through independent two-way channels, thereby reducing stuttering and noise caused by parameter mismatch; at the same time, the second target media server instance can monitor the stream transmission state (such as packet loss rate) in real time, thereby providing data support for subsequent quality optimization.

[0124] In an optional implementation, the second target call control instance is specifically configured to: in response to the incoming event, determine the interactive voice response instruction to be executed according to the label of the second target user, and send the interactive voice response instruction to the second target media server instance; in response to the end of the interactive voice response broadcast event returned by the second target media server instance, detect the state of each agent in the agent cluster: if all agents are in a busy state, store the incoming signaling of the second target user in a waiting connection queue, and generate a waiting audio instruction to be executed, and send the waiting audio instruction to the second target media server instance; If there is a free agent, the second target user is bound to the optimal free agent based on the matching degree of the agent skill label and the business label of the second target user and the current load of the agent, and signaling of the call second target agent is sent to the second target media server instance; wherein the optimal free agent is the second target agent.

[0125] In the embodiments of the present application, after the second target call control instance responds to the incoming line event, the second target user label (such as user business label, user level, historical interaction label) carried in the event is first analyzed, and the interactive voice response instruction to be executed is determined based on the label matching the preset business rule. For example: If the user label contains a bill query, the IVR (Interactive Voice Response) instruction is to play the voice prompt of please enter the query password and press # to end, and to collect user input; If the user is a VIP, the IVR instruction is to skip the basic navigation and directly play the voice of being transferred to a dedicated agent, please wait. Subsequently, the call control instance sends the IVR instruction (containing voice file identification, interaction logic such as key collection rule) to the second target media server instance to drive the media server to perform voice broadcast and user interaction.

[0126] When the second target media server instance completes the IVR voice broadcast (such as the user completes the key input or the IVR process naturally ends), an interactive voice response broadcast end event (carrying the user IVR interaction result, such as the user selecting a bill query service) is returned to the second target call control instance. The call control instance responds to the event, queries the real-time state (online / offline, idle / busy, current processing call number, etc.) of all agents in the agent cluster through the registration center, and handles in two cases: If all agents are in a busy state: the call control instance stores the incoming signaling of the second target user in the queue to be connected, and the queue is sorted and managed according to user level and waiting time; at the same time, a waiting audio instruction is generated and sent to the second target media server instance, and the media server plays the waiting audio to the user terminal to avoid the user hanging up due to no feedback.

[0127] If there is a free agent, the call control instance selects the optimal free agent (i.e. the second target agent) based on the following rules: Skill label matching degree: calculate the matching score of the agent skill label and the second target user business label (such as 10 points for complete match and 5 points for partial match); Agent current load: count the number of calls currently handled by the agent (such as 0 for idle, 1 for low load, and 2 or more for medium-high load), and the lower the load, the higher the weight; The integrated ranking is calculated according to the matching degree and the load weight, the idle agent with the highest score is selected as the second target agent, and the user is bound to the agent. Finally, the call control instance sends a call second target agent signaling (including agent identifier and user IVR interaction result) to the second target media server instance, triggering the subsequent agent ringing process.

[0128] Based on the above description, the embodiments of the present application trigger targeted IVR instructions based on user tags, reducing the cost of confirming basic information of human agents. At the same time, the standardized execution of IVR processes (such as unified voice prompts and key rules) ensures that different users have consistent service entry experiences, avoiding non-standard services caused by differences in agent language.

[0129] In addition, during the selection of idle agents, the skill tag matching degree is given priority to ensure user demand, so that agents skilled in the business can handle it, reducing the transfer rate and communication cost. The current load consideration avoids overloading a single agent, balances the utilization of cluster resources, and reduces the risk of call delay.

[0130] Queue management and waiting audio playback when all agents are busy can reduce the rate of users directly hanging up and improve the incoming call connection rate. At the same time, personalized waiting audio can reduce user anxiety.

[0131] Furthermore, the IVR instructions and agent allocation rules are dynamically generated based on user tags and business rules, supporting configuration adjustment without modifying the core code, so that new business scenarios can be quickly adapted.

[0132] As a specific example, Figure 3 An interaction flow diagram of an incoming call scenario of a call system is shown. Referring to Figure 3 , the process of the incoming call scenario of the call system can include the following steps: After the user dials the number, the line vendor routes the incoming call request to the second target call gateway instance, wherein the SIP INVITE signaling contains the user number and the called number.

[0133] After receiving the signaling, the second target call gateway instance selects the second target media server instance (based on load and availability strategy), and forwards the INVITE signaling to the second target media server instance.

[0134] The second target media server instance publishes a line-in event (including user number, called number, etc.) to the second target call control instance.

[0135] The second target call control instance asynchronously processes the line-in event and executes the following logic.

[0136] IVR flow matching: match into line routing according to called number, find executed IVR (Interactive Voice Response) routing rule (such as press 1 to transfer to human, press 2 to check bill).

[0137] Execute IVR flow: trigger broadcast welcome words (such as welcome to call XX customer service center), send broadcast command to the second target media server instance; after the media server executes voice broadcast, update execution log and publish broadcast end event.

[0138] Queue and waiting music, if all seats are busy, execute queue-in operation, send broadcast command to the media server to play waiting music in a loop, and update queue record.

[0139] Seat allocation: when there is an idle seat in the queue, the second target call control instance executes queue-out, generates a pairing task, and executes the pairing task, and sends SIP INVITE signaling (call target seat) to the second target media server instance.

[0140] The second target media server instance forwards the INVITE signaling to the second target SIP registration server instance, and the second target SIP registration server instance routes the INVITE signaling to the second target protocol conversion gateway instance according to the seat registration location.

[0141] The second target protocol conversion gateway instance converts the SIP signaling into a protocol (such as WebSocket) recognizable by the seat front end, and forwards it to the business front end interaction interface through the load balancer.

[0142] The SDK of the business front end interface processes the incoming call event, triggers the seat to ring; after the seat performs the answering operation, returns the SIP 200 OK response, and returns it to the second target media server instance through the second target protocol conversion gateway instance and the second target SIP registration server instance.

[0143] The second target media server instance publishes the connected event to the second target call control instance.

[0144] The second target call control instance updates the queue and call data, triggers the second target media server instance to bridge the user to the second target media server instance, and the seat to the two-way media stream channel of the second target media server instance, and the two parties start to talk.

[0145] Referring to Figure 4 , a specific structural diagram of a call system is shown. The call system includes: The line vendor is a provider of external communication network, responsible for call access and routing of user terminals.

[0146] Call gateway instance, used to interface with line carriers, implements conversion between external protocols and internal SIP protocols, is the bridge between the call system and external networks.

[0147] Media server cluster, media processing core, contains multiple media server instances (instances 1~4), responsible for SIP signaling forwarding, media stream bridging, audio / video codec, etc.

[0148] Call control instance, business logic core, contains multiple call control instances (instances 1~2), responsible for call initiation / access, agent allocation, IVR process, event synchronization, etc.

[0149] Business instance, used to process business logic expansion (such as call recording storage, CRM integration), contains multiple business instances (instances 1~2).

[0150] Registration center, service governance core, contains multiple registration center instances (1~3), responsible for registering the status of each instance in the cluster (online / offline, load), providing service discovery capabilities.

[0151] Protocol conversion gateway instance, used to implement conversion between SIP protocol and agent front-end protocol (such as WebSocket), suitable for web agents, mobile terminals and other lightweight terminals.

[0152] Load balancer (LB), traffic distribution device, distributes requests to backend cluster instances through polling, weight, least connection, etc., to avoid single point overload.

[0153] Agent, access terminal for customer service personnel (such as web agent interface, hardware phone), interacts with the system through the protocol conversion gateway.

[0154] Based on the call system, the process of user incoming call is: the user dials the number, the line carrier routes the incoming call request to the call gateway instance, the call gateway converts the external protocol to SIP and forwards it to the media server cluster, triggering subsequent call control and agent allocation processes.

[0155] The process of agent outbound call is: the agent initiates outbound call through the front-end interface, the request is forwarded to the call control instance through the protocol conversion gateway instance and the load balancer, the call control schedules the media server, and the media server initiates user-side call through the call gateway instance and the line carrier.

[0156] Service registration and discovery: media server, call control, business instance, etc. cluster instances register their status (such as load, service capability) to the registration center; when a component needs to call other services (such as call control calling media server), it queries available instances through the registration center to achieve dynamic service discovery.

[0157] In the system, the core components such as media server, call control, registration center, etc. are deployed in multi-instance cluster. When a certain instance fails, the load balancer will automatically switch the traffic to other healthy instances, avoiding service interruption caused by single point failure, and ensuring system availability. The registration center uniformly manages the service state of each instance, supports dynamic expansion and contraction of instances (such as adding media server instances during business peak period, and the registration center automatically identifies and undertakes traffic), and can complete resource adjustment without service interruption, improving system flexibility.

[0158] The above merely illustrates the embodiments of the present application, but the protection scope of the present application is not limited thereto, and any person skilled in the art can easily think of changes or replacements within the technical range disclosed by the present application, which shall be covered within the protection scope of the present application.

Claims

1. A calling system, characterized in that, The system includes: a call control cluster, a media server cluster, a load balancer, and a registry center; The registration center is used to register information about each cluster in the call control cluster and each cluster in the media server cluster; The load balancer is used to respond to outbound service requests sent by the front-end interactive interface and allocate the outbound service requests to a first target call control instance in the call control cluster; wherein, the first target call control instance is a call control instance in the call control cluster that is in an online state. The first target call control instance is used to determine a first target media server instance in the media server cluster based on the status information of each media server instance in the media server cluster in the registration center, and send a target call instruction to the first target media server instance based on the outgoing call service request. The first target media server instance is used to establish a bidirectional media stream transmission channel between the first target user and the first target agent in the outgoing service request, based on the media parameters in the target call instruction.

2. The system according to claim 1, characterized in that, The outbound service request is generated by the first target agent after performing a specific operation on the first front-end interactive interface; The outbound service request includes information about the first target user, the identifier of the first target agent, and the service type.

3. The system according to claim 2, characterized in that, The system also includes a SIP registration server cluster and a protocol conversion gateway cluster; The registration center is also used to register information about each cluster in the SIP registration server cluster and each cluster in the protocol conversion gateway cluster. The first target media server instance is further configured to generate a first call signaling for the first target agent according to the target call instruction, and send the first call signaling to the first target SIP registration server instance in the SIP registration server cluster; The first target SIP registration server instance is used to determine the first target protocol conversion gateway instance in the protocol conversion gateway cluster based on the registration status information and registration location of the first target agent, and to route the first call signaling to the first target protocol conversion gateway instance; The first target protocol conversion gateway instance is used to convert the first call signaling into a protocol recognizable by the first front-end interactive interface, and forward the first call signaling after protocol conversion to the first front-end interactive interface; The first front-end interactive interface is used to automatically respond to the first call signaling after the protocol conversion, start collecting the audio and video information of the first target agent, generate target media parameters, and return the target media parameters to the first target media server instance through the first target protocol conversion gateway and the first target SIP registration server instance. The first target media server instance is further configured to establish a first media stream transmission sub-channel with the first front-end interactive interface based on the target media parameters. The first media stream transmission sub-channel is used to transmit the audio and video data of the first target agent.

4. The system according to claim 3, characterized in that, The first target media server instance is also used for: After generating the first call signaling, a seat call start event is sent to the first target call control instance; The first target protocol conversion gateway instance is used to forward the converted call instruction to the first front-end interactive interface, and after the first front-end interactive interface enters the agent ringing state, it sends an agent ringing event to the first target call control instance. Upon receiving the target media parameters, a seat answering event is sent to the first target call control instance; When a media stream transmission channel is established with the first front-end interactive interface, a user call start event is sent to the first target call control instance; wherein, the user call start event is used to indicate that the audio and video media streams between the first target agent and the first target user have started bidirectional transmission. The first target call control instance is also used for: In response to the agent call start event, the call start timestamp of the first target agent is recorded synchronously; In response to the seat ringing event, the ringing timestamp of the first target seat is recorded synchronously; In response to the seat answering event, the answering timestamp of the first target seat is recorded synchronously; In response to the user call start event, the call start timestamp for the first target user is recorded synchronously.

5. The system according to claim 3, characterized in that, The system also includes a call gateway cluster; The first target call control instance is further configured to determine the first target call gateway instance in the call gateway cluster based on the attribute information of the first target user in the outgoing call service request, and in combination with the load status and line adaptability of each call gateway instance in the call gateway cluster. The first target media server instance is further configured to generate a second call signaling for the first target user according to the target call instruction, and send the second call signaling to the first target call gateway instance; The first target call gateway instance is used to convert the second call signaling to a protocol format supported by the external line operator, and to route the protocol-converted second call signaling to the external line operator to request the external line operator to initiate a call to the first target user.

6. The system according to claim 5, characterized in that, The first target call gateway instance is also used to receive the ringing response returned by the external line operator and return the ringing response to the first target media server instance; The first target media server instance is also configured to send a user ringing event to the first target call control instance after receiving the ringing response; In response to the user ringing event, the first target call control instance synchronously records the ringing timestamp of the first target user and publishes the ringing event of the first target user to the load balancer. The load balancer is used to forward the ringing event of the first target user to the first front-end interactive interface; The first front-end interactive interface is used to send the ringing event of the first target user to the first target agent.

7. The system according to claim 5, characterized in that, The first target call gateway instance is also used to receive the answer response returned by the external line operator and return the answer response to the first target media server instance; The first target media server instance is also configured to send a user answer event to the first target call control instance after receiving the answer response; In response to the user answering event, the first target call control instance synchronously records the first target user's answer timestamp and publishes the first target user's answering event to the load balancer. The load balancer is used to forward the answering event of the first target user to the first front-end interactive interface; The first front-end interactive interface is used to publish the call answering event of the first target user to the first target agent.

8. The system according to claim 5, characterized in that, The first target call gateway instance is also configured to receive the user call termination response returned by the external line operator, and return the user call termination response to the first target media server instance; The first target media server instance is also configured to send a user hang-up event to the first target call control instance after receiving the user call termination response; The first target call control instance is also configured to respond to the user hang-up event by synchronously recording the hang-up timestamp of the first target user and publishing the hang-up event of the first target user to the load balancer; The load balancer is also used to forward the hang-up event of the first target user to the first front-end interactive interface; The first front-end interactive interface is also used to send the hang-up event of the first target user to the first target agent.

9. The system according to claim 5, characterized in that, The first target media server instance is further configured to terminate the media stream transmission with the first target agent after receiving the first target agent hang-up instruction forwarded by the first front-end interactive interface, generate a first target agent hang-up event, and publish the first target agent hang-up event to the first target call control instance. The first target call control instance is also used to synchronously record the hang-up timestamp of the first target agent in response to the hang-up event of the first target agent.

10. The system according to claim 9, characterized in that, The system also includes a service cluster; The first target call control instance is also used to generate a call record between the first target agent and the first target user after synchronously recording the hang-up timestamp of the first target agent, and send the call record to the target service instance in the service cluster; The target business instance is used to convert the call records into a new format and push the converted call records to an external business backend system through a preset interface.

11. The system according to any one of claims 5-10, characterized in that, The second target call gateway instance in the call gateway cluster is used to receive the incoming call signaling of the second target user forwarded by the external line operator, and based on the status information of each media server instance in the media server cluster, determine the second target media server instance in the media server cluster and route the incoming call signaling to the second target media server instance. The second target media server instance is used to publish an incoming call event to the second target call control instance in the call control cluster based on the incoming call signaling; The second target call control instance is used to respond to the incoming line event, determine the second target agent, and send a call to the second target agent signaling to the second target media server instance; The second target media server instance is also used to forward the call second target agent signaling to the SIP registration server; The SIP registration server is used to route the call signaling to the second target agent to the second target protocol gateway instance in the protocol conversion gateway cluster based on the registration location information of the second target agent. The second target protocol gateway instance is used to convert the second target agent signaling into a protocol recognizable by the second front-end interactive interface, and to route the converted signaling to the load balancer; The load balancer is used to route the converted signaling to the second target front-end interactive interface corresponding to the second target agent based on the identifier of the second target agent, so as to trigger the second agent to ring and remind.

12. The system according to claim 11, characterized in that, The second target front-end interactive interface is also used to respond to the answering operation of the second target agent after the second agent ringing reminder is triggered, trigger the second agent answering event, generate the second target agent answering response signaling, and return the second target agent answering response signaling to the second target media server instance through the second target protocol conversion gateway instance in the protocol conversion gateway cluster; The second target media server instance is used to publish a second agent connection event to the second target call control instance according to the second target agent answer response signaling, update the corresponding call data, and establish a bidirectional media stream transmission channel between the second target user and the second target agent.

13. The system according to claim 11, characterized in that, The second target call control instance is specifically used for: In response to the incoming line event, the system determines the interactive voice response instruction to be executed based on the tag of the second target user, and sends the interactive voice response instruction to the second target media server instance. In response to the interactive voice response broadcast end event returned by the second target media server instance, the status of each agent in the agent cluster is detected: If all agents are busy, the incoming call signaling of the second target user is stored in the waiting queue, and a waiting audio instruction to be executed is generated and sent to the second target media server instance. If an available agent exists, the second target user is bound to the optimal available agent based on the matching degree between the agent's skill tag and the business tag of the second target user, and the agent's current load. The signaling to call the second target agent is then sent to the second target media server instance; wherein, the optimal available agent is the second target agent.

Citation Information

Patent Citations

  • Call seat multi-skill distribution system and distribution method based on cloud computing

    CN103402032A

  • Cluster architecture system for call center

    CN106412351A

  • Voice call-out method and device, computer equipment and storage medium

    CN112003986A

  • Call center system and implementation method thereof

    CN112671986A

  • Voice response system test method and device, electronic equipment and storage medium

    CN114528203A