Method and device for realizing manual outbound call based on CTI (Computer Telephony Integration) and related product

By implementing a CTI-based manual outbound calling method, utilizing FreeSWITCH and a SIP proxy server, combined with the HTTP protocol and a CTI engine, the problems of closed CTI architecture and hardware dependence are solved, enabling flexible secondary development and efficient outbound calling business operations.

CN121125909APending Publication Date: 2025-12-12BEIJING WATERDROP TECH GRP CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202511202883.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-26
Publication Date
2025-12-12

AI Technical Summary

Technical Problem

The existing CTI architecture is closed, limiting secondary development. In manual outbound calling scenarios, the expansion of capacity is limited by hardware equipment, making it difficult to meet the business needs of the Internet industry for high-frequency iteration and personalized customization.

Method used

By implementing a CTI-based manual outbound calling method, utilizing FreeSWITCH and SIP proxy servers, combined with the HTTP protocol and CTI engine, the call link between agents and target user terminals is created and associated. It supports flexible secondary development and lightweight deployment without external hardware, and adopts a software-defined signaling routing and event feedback mechanism.

Benefits of technology

It achieves lightweight deployment without external hardware, supports on-demand horizontal expansion and hot-swappable functions, improves the flexibility and business adaptability of the manual outbound call system, and optimizes operational efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121125909A_ABST
    Figure CN121125909A_ABST
Patent Text Reader

Abstract

The invention provides a manual call-out implementation method and device based on CTI (Computer Telephony Integration) and a related product, and relates to the technical field of voice communication. According to the method, seat registration, call control, call ticket and recording storage are unified in an open protocol stack through a signaling routing and event return mechanism defined by software, so that lightweight deployment without external hardware is realized; all the components of the system are coupled through standard interfaces, and on-demand transverse capacity expansion and functional hot plug are supported. The open system architecture constructed by the method supports flexible secondary development, reduces dependence on hardware equipment, guarantees ordered execution of manual outbound operation of the seat and effective retention of call data, improves the flexibility and service adaptation capability of a manual outbound system, and optimizes the operation efficiency of manual outbound service.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of voice communication, in particular to a CTI-based artificial outbound call implementation method and device and related products. BACKGROUND

[0002] In the current digital-driven daily business activities, artificial outbound call has been upgraded from traditional "telephone sales" to a core tool for precision marketing and customer service, especially in the Internet industry, which carries key business needs such as user growth, product promotion, customer maintenance, and after-sales follow-up. For example, e-commerce platforms use outbound calls to reach high-potential users to push new product activities, Internet financial enterprises use artificial communication to answer users' financial questions and improve conversion, and online education institutions use outbound calls to complete course consultation and enrollment guidance. The CTI (Computer Telephony Integration) system, as the core platform of artificial outbound call, breaks down the barriers between computer data and voice communication, integrates functions such as agent management, call control, and call recording, not only guarantees the efficiency of outbound call reach (such as support for concurrent call number per second), but also realizes "accurate communication to people" combined with user tag data, which provides key support for enterprises to reduce marketing costs and improve customer response efficiency. Its marketing value and business adaptability have become an important part of the competition among Internet companies.

[0003] However, most artificial outbound call systems in the current market still rely on traditional CTI architecture with slow technology iteration, and widely use closed call control systems such as VOS3000 (Voice Over IP Switch 3000, IP voice switch 3000), Asterisk (an open source telephone switching platform), etc. These systems can meet the basic voice call needs of "agent-user", but in the high-frequency iteration and personalized business scenarios of the Internet industry, there are still the following problems: closed architecture, limited secondary development, and limited expansion of artificial outbound call scenarios by hardware devices. SUMMARY

[0004] In view of the above problems, the present application is proposed to provide a CTI-based artificial outbound call implementation method, device and related products to overcome the above problems or at least partially solve the above problems. The technical solution is as follows:

[0005] In a first aspect, a CTI-based artificial outbound call implementation method is provided, which comprises:

[0006] The agent terminal responds to the registration operation of the agent, initiates a registration request to the SIP (Session Initiation Protocol) proxy server, and completes the agent sign-in;

[0007] In response to the manual outbound call request initiated by the agent terminal to the CTI backend through a preset network protocol, the CTI backend calls FreeSWITCH (an open source telephone switching platform) to execute a first call command through the CTI engine to complete creation of a call link of the agent terminal, and the FreeSWITCH feeds back a first link establishment event to the CTI engine.

[0008] After the CTI engine receives the first link establishment event, the CTI engine calls the FreeSWITCH to execute a second call command to complete creation of a call link of the target user terminal based on the established call link of the agent terminal, establish an association between the call link of the agent terminal and the call link of the target user terminal, trigger the target user terminal to ring, and in response to a listening operation of the target user, the FreeSWITCH feeds back a second link establishment event to the CTI engine to realize a call between the agent and the target user.

[0009] In response to a hang-up operation of the agent or the target user, the FreeSWITCH records call data and recording data corresponding to the call, and transmits the call data and the recording data to the CTI engine to complete data storage.

[0010] In a possible implementation, the preset network protocol includes an HTTP protocol (HyperText Transfer Protocol), the manual outbound call request is an HTTP POST request, and a request body includes an agent number, a target user number, and an outbound task number.

[0011] In a possible implementation, the CTI backend calls the FreeSWITCH to execute the first call command through the CTI engine to complete creation of the call link of the agent terminal, and the FreeSWITCH feeds back the first link establishment event to the CTI engine, including:

[0012] The FreeSWITCH generates a call request signaling of the agent terminal according to the first call command; and the first call command is an originate command.

[0013] The FreeSWITCH sends the call request signaling of the agent terminal to a SIP proxy server through a preset call route, and the SIP proxy server forwards the call request signaling of the agent terminal to the agent terminal to trigger the agent terminal to ring.

[0014] In response to a click-to-listen operation of the agent after hearing the ring, the agent terminal generates a first response signaling and sends the first response signaling to the FreeSWITCH through the SIP proxy server.

[0015] After the FreeSWITCH receives the first response signaling, the FreeSWITCH generates a first link establishment event indicating that the agent has listened and sends the first link establishment event to the CTI engine.

[0016] In a possible implementation, after receiving the first link establishment event, the CTI engine invokes the FreeSWITCH to execute the second call command, generates the target user terminal call link based on the established agent terminal call link, and establishes the association relationship between the agent terminal call link and the target user terminal link, including:

[0017] When the FreeSWITCH executes the second call command, the target user terminal call link is created in the session of the agent terminal call link; wherein the second call command is a bridge command;

[0018] The FreeSWITCH implements the media stream bridging and signaling association of the agent terminal call link and the target user terminal call link, and completes the complete association of the agent terminal call link and the target user terminal call link.

[0019] In a possible implementation, the target user terminal is triggered to ring, and in response to the answering operation of the target user, the FreeSWITCH feeds back a second link establishment event to the CTI engine, and realizes the call between the agent and the target user, including:

[0020] The FreeSWITCH generates a target user terminal call request signaling, sends it to the SIP proxy server through a preset call routing, and forwards the signaling to the target line party server by the SIP proxy server, so as to trigger the target user terminal to ring;

[0021] In response to the answering operation of the target user, the target user terminal returns an answering second response signaling, which is returned to the FreeSWITCH through the target line party server and the SIP proxy server;

[0022] After receiving the second response signaling, the FreeSWITCH generates a second link establishment event and feeds it back to the CTI engine, so as to form an end-to-end voice path between the agent terminal and the target user terminal.

[0023] In a possible implementation, in response to the hang-up operation of the agent or the target user, the FreeSWITCH records the call corresponding to the ticket data and the recording data, and transmits the ticket data and the recording data to the CTI engine to complete data storage, including:

[0024] In response to the hang-up operation of the target user, the target user terminal generates a hang-up signaling, which is forwarded to the FreeSWITCH through the SIP proxy server and the target line party server; or in response to the hang-up operation of the agent, the agent terminal generates a hang-up signaling, which is forwarded to the FreeSWITCH through the SIP proxy server;

[0025] After receiving the hang-up signaling, the FreeSWITCH disconnects the media stream bridge and signaling association between the agent terminal and the target user terminal, and generates a call end event;

[0026] Based on the call end event, the FreeSWITCH collects and records the call data and the recording data;

[0027] After receiving the call end event, the CTI engine writes the call data and the recording data into a storage medium.

[0028] In a second aspect, a CTI-based manual outbound call implementation device is provided, and the device comprises:

[0029] An agent registration unit is configured to complete agent check-in by initiating a registration request to a SIP proxy server in response to a registration operation of an agent terminal.

[0030] An agent terminal call control unit is configured to complete creation of a call link of an agent terminal by calling a FreeSWITCH to execute a first call command through a CTI engine of a CTI backend in response to a manual outbound call request initiated by the agent terminal to the CTI backend through a preset network protocol, and the FreeSWITCH feeds back a first link establishment event to the CTI engine.

[0031] A target user terminal call control unit is configured to complete creation of a call link of a target user terminal based on the established call link of the agent terminal by calling the FreeSWITCH to execute a second call command in response to the CTI engine receiving the first link establishment event, establish an association relationship between the call link of the agent terminal and the call link of the target user terminal, trigger the target user terminal to ring, and realize a call between the agent and the target user in response to a listening operation of the target user, the FreeSWITCH feeds back a second link establishment event to the CTI engine.

[0032] A data storage unit is configured to record call data and recording data corresponding to a call and transmit the call data and the recording data to the CTI engine for data storage in response to a hang-up operation of the agent terminal or the target user terminal.

[0033] In a third aspect, an electronic device is provided, which comprises a processor and a memory, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute the CTI-based manual outbound call implementation method of any one of the above aspects.

[0034] In a fourth aspect, a storage medium is provided, which stores a computer program, wherein the computer program is configured to execute the CTI-based manual outbound call implementation method of any one of the above aspects when running.

[0035] In a fifth aspect, a computer program product is provided, comprising a computer program configured to perform the CTI-based manual outbound call implementation method of any of the above aspects when executed.

[0036] By means of the technical solutions described above, the CTI-based manual outbound call implementation method, device and related product provided by the embodiments of the present application are provided. The method unifies the agent registration, call control, statement and recording storage in an open protocol stack through the software-defined signaling routing and event feedback mechanism, and implements lightweight deployment without external hardware; the components of the system are coupled with standard interfaces, supporting on-demand horizontal expansion and function hot plug. The open system architecture constructed by the method supports flexible secondary development, reduces the dependence on hardware devices, ensures the orderly execution of the agent manual outbound call operation and the effective retention of the call data, improves the flexibility and business adaptation capability of the manual outbound call system, and optimizes the operation efficiency of the manual outbound call business. BRIEF DESCRIPTION OF DRAWINGS

[0037] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings needed to be used in the description of the embodiments of the present application will be briefly introduced.

[0038] Figure 1 A flowchart of the CTI-based manual outbound call implementation method in the embodiments of the present application is shown;

[0039] Figure 2 A flowchart of the CTI-based manual outbound call implementation method in another embodiment of the present application is shown;

[0040] Figure 3 A flowchart of the CTI-based manual outbound call implementation method in another embodiment of the present application is shown;

[0041] Figure 4 A flowchart of the CTI-based manual outbound call implementation method in another embodiment of the present application is shown;

[0042] Figure 5 A flowchart of the CTI-based manual outbound call implementation method in another embodiment of the present application is shown;

[0043] Figure 6 A structural diagram of the CTI-based manual outbound call implementation device in another embodiment of the present application is shown;

[0044] Figure 7 A structural diagram of the electronic device provided by the embodiments of the present application is shown. DETAILED DESCRIPTION

[0045] Exemplary embodiments of the present application will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of the present application are shown in the drawings, it should be understood that the present application may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this application will be thorough and complete, and will fully convey the scope of the present application to those skilled in the art.

[0046] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such use can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the term "comprising" and its variations should be interpreted as open-ended terms meaning "including but not limited to."

[0047] Currently, most outbound calling systems on the market still rely on the traditional CTI architecture, which has a slow pace of technological iteration, and widely adopt closed call control systems such as VOS3000 and Asterisk. While these systems can meet the basic voice call needs of "agent-user," they still have the following problems in the high-frequency iteration and personalized customization business scenarios of the Internet industry: closed architecture, limited secondary development, and scalability in manual outbound calling scenarios is limited by hardware equipment.

[0048] To address the aforementioned technical problems, embodiments of this application provide a method for implementing manual outbound calls based on CTI, such as... Figure 1 As shown, the CTI-based manual outbound calling implementation method may include the following steps S101 to S104:

[0049] In step S101, the agent terminal responds to the agent's registration operation by sending a registration request to the SIP proxy server to complete the agent check-in.

[0050] In this step, the SIP proxy server includes servers suitable for voice communication technology such as Kamailio server and OpenSIPS server, and this embodiment does not limit this.

[0051] In step S102, in response to the manual outbound call request initiated by the agent terminal to the CTI backend through the preset network protocol, the CTI backend calls FreeSWITCH through the CTI engine to execute the first call command, completes the creation of the agent terminal call link, and FreeSWITCH sends the first link establishment event back to the CTI engine.

[0052] In this step, the preset network protocol can be either HTTP or HTTPS (Hypertext Transfer Protocol Secure) as needed. When HTTPS is selected, sensitive data in the outbound call request, such as agent identification and target user number, can be protected by SSL (Secure Sockets Layer) / TLS (Transport Layer Security) encryption. The first call command generated by the CTI engine carries call control parameters, such as agent terminal call priority, ring timeout retries, and other advanced service policies. The command format can be accurately parsed by FreeSWITCH. This embodiment does not restrict the specific protocol selection or the parameters carried by the first call command.

[0053] In step S103, after receiving the first link establishment event, the CTI engine calls FreeSWITCH to execute the second call command. Based on the established agent terminal call link, it completes the creation of the target user terminal call link, establishes the association between the agent terminal call link and the target user terminal link, triggers the target user terminal to ring, responds to the target user's answering operation, and FreeSWITCH sends the second link establishment event back to the CTI engine, thus realizing the call between the agent and the target user.

[0054] In step S104, in response to the hang-up operation of the agent or target user, FreeSWITCH records the call detail record (CDR) data and recording data corresponding to the call, and transmits the CDR data and recording data to the CTI engine to complete data storage.

[0055] In this step, scenarios that trigger the hang-up operation include the agent clicking the "hang up" button through the front-end client, the target user actively hanging up the terminal call, or the system automatically hanging up after detecting a call timeout / network interruption. After FreeSWITCH captures the hang-up signal through its built-in call event monitoring module, it immediately starts the data recording process. The call detail record (CDR) data is generated based on the signaling interaction and link status throughout the call, including parameters such as the call unique identifier (UUID), call initiation / connection / end time, call duration, agent ID, target user number, link quality indicators, and line information. The recording data is generated through FreeSWITCH's mod_dptools module and can be in formats such as WAV and MP3.

[0056] This embodiment unifies agent registration, call control, call detail records (CDRs), and call recording storage within an open protocol stack through a software-defined signaling routing and event feedback mechanism, achieving lightweight deployment without external hardware. System components are coupled via standard interfaces, supporting on-demand horizontal expansion and hot-swapping of functions. The open system architecture built using this method supports flexible secondary development, reduces dependence on hardware devices, and ensures the orderly execution of agent outbound calls and effective retention of call data. This enhances the flexibility and business adaptability of the outbound calling system and optimizes the operational efficiency of outbound calling services.

[0057] This application embodiment provides a possible implementation method, and specifically explains the preset network protocol and manual outbound call request in step S102 above:

[0058] The preset network protocol can include the HTTP protocol. Manual outbound call requests are HTTP POST requests, and the request body contains the agent's ID, the target user's number, and the outbound call task number.

[0059] This embodiment ensures stable communication between the agent terminal and the CTI backend through cross-terminal compatibility of the HTTP protocol.

[0060] This application embodiment provides a possible implementation. In step S102 above, in response to the agent terminal initiating a manual outbound call request to the CTI backend via a preset network protocol, the CTI backend calls FreeSWITCH through the CTI engine to execute the first call command, completing the creation of the agent terminal call link. FreeSWITCH then sends a first link establishment event back to the CTI engine, such as... Figure 2 As shown, the specific steps may include S1021 to S1024:

[0061] Step S1021: FreeSWITCH generates a call request signaling for the agent terminal based on the first call command; wherein, the first call command is the originate command;

[0062] In step S1022, FreeSWITCH sends the call request signaling from the agent terminal to the SIP proxy server through a preset call route. The SIP proxy server then forwards the call request signaling from the agent terminal to the agent terminal, triggering the agent terminal to ring.

[0063] In step S1023, in response to the agent's click to answer the call after hearing the ring, the agent terminal generates a first response signaling and sends it to FreeSWITCH through the SIP proxy server;

[0064] In step S1024, after receiving the first response signaling, FreeSWITCH generates a first link establishment event indicating that the agent has answered the call and sends it to the CTI engine.

[0065] The preset call route can be the optimal path planned based on parameters such as the agent's location, network load, historical transmission delay, or system status. This embodiment does not impose any restrictions on this.

[0066] This embodiment effectively avoids network congestion nodes and shortens signaling transmission time by relying on preset call routes for signaling transmission; through the relay forwarding of the SIP proxy server, illegal requests can be filtered by leveraging the server's signaling verification capabilities, thus ensuring the security of signaling transmission.

[0067] This application provides a possible implementation method: after receiving the first link establishment event, the CTI engine calls FreeSWITCH to execute the second call command, generates the target user terminal call link based on the established agent terminal call link, and establishes the association between the agent terminal call link and the target user terminal link, such as... Figure 3 As shown, the specific steps may include S1031 to S1032:

[0068] In step S1031, when FreeSWITCH executes the second call command, it creates a target user terminal call link in the session of the agent terminal call link; wherein, the second call command is a bridge command;

[0069] In step S1032, FreeSWITCH implements media stream bridging and signaling association between the agent terminal call link and the target user terminal call link, thus completing the full association between the agent terminal call link and the target user terminal call link.

[0070] This embodiment breaks through the limitations of the traditional "call the user first, then associate" process by linking the call link between the agent terminal and the target user terminal. It can establish the signaling transmission channel between the agent terminal and the target user terminal in advance, ensuring that when the user calls, the agent can obtain the real user ringback tone in real time (such as "user busy" or "connecting" status tones), avoiding the problem of "simulated ringback tone misleading the agent's judgment" in the traditional process. At the same time, the pre-established logical association also lays the foundation for quickly completing the formal link binding after the user answers, shortening the call establishment delay, and further ensuring the smoothness of the manual outbound call process and the user communication experience.

[0071] This application embodiment provides a possible implementation method. In step S103 above, the target user terminal is triggered to ring. In response to the target user's answering operation, FreeSWITCH sends a second link establishment event to the CTI engine, enabling the agent to communicate with the target user. Figure 4 As shown, the specific steps may include S1033 to S1035:

[0072] In step S1033, FreeSWITCH generates a call request signaling for the target user terminal and sends it to the SIP proxy server through a preset call route. The SIP proxy server then forwards the signaling to the target line server, triggering the target user terminal to ring.

[0073] In step S1034, in response to the target user's answering operation, the target user terminal returns a second answering response signaling, which is transmitted back to FreeSWITCH via the target line server and the SIP proxy server.

[0074] In step S1035, after receiving the second response signaling, FreeSWITCH generates a second link establishment event and feeds it back to the CTI engine, thus forming an end-to-end voice path between the agent terminal and the target user terminal.

[0075] This embodiment constructs a complete call link from FreeSWITCH to the target user terminal, which not only solves the problem of call adaptation across devices / networks, but also improves the stability and response efficiency of the user call process in manual outbound call scenarios.

[0076] This application embodiment provides a possible implementation method. In step S104 above, in response to the hang-up operation of the agent or target user, FreeSWITCH records the call detail record (CDR) data and recording data corresponding to the call, and transmits the CDR data and recording data to the CTI engine to complete data storage. Figure 5 As shown, the specific steps may include S1041 to S1044:

[0077] In step S1041, in response to the hang-up operation of the target user, the target user terminal generates a hang-up signaling message, which is forwarded to FreeSWITCH via the SIP proxy server and the target line server; or in response to the hang-up operation of the agent, the agent terminal generates a hang-up signaling message, which is forwarded to FreeSWITCH via the SIP proxy server.

[0078] In step S1042, after receiving the hang-up signaling, FreeSWITCH disconnects the media stream bridge and signaling association between the agent terminal and the target user terminal, and generates a call end event.

[0079] Step S1043: FreeSWITCH collects and records call detail records (CDRs) and audio recordings based on the call end event.

[0080] In step S1044, after the CTI engine receives the call end event, it writes the call detail record data and the recording data into the storage medium.

[0081] This embodiment solves the problem of "residual links after call termination leading to resource consumption and scattered data storage" in traditional outbound calling systems by constructing a complete closed loop of "signal feedback - link cleanup - data retention" after the call ends. It also provides reliable data support for subsequent business review and compliance management.

[0082] The above introduces Figure 1 The embodiments shown have various implementation methods for each step. The following will further explain the CTI-based manual outbound call implementation method of this application through specific embodiments.

[0083] This specific embodiment mainly implements an open and flexible manual outbound calling architecture. By using software services, it overcomes hardware resource limitations, supports rapid and easy expansion, and meets the needs of different business scenarios for concurrency and flexibility. At the same time, by integrating more business logic into the CTI engine, it solves the problem of limited secondary development caused by the closed architecture. Enterprises can customize the system according to their own business processes and calling strategies, improving the system's adaptability and maintainability, and effectively improving the efficiency and flexibility of manual outbound calling.

[0084] (1) Seat check-in preparation stage

[0085] 1. Registration Request Initiation and Signaling Generation: After the agent clicks the "Check In" button on the terminal, the terminal automatically generates SIP registration signaling, which includes the agent's unique identifier (such as employee number "CS202508"), terminal device information (PC MAC address "00-1A-2B-3C-4D-5E", terminal IP "192.168.1.101"), authentication information, and network adaptation parameters;

[0086] 2. Registration Verification and Result Feedback: The SIP registration signaling is sent to the Kamailio server via the UDP protocol. The server retrieves the "agent whitelist" from the associated agent management MySQL database, compares the agent ID and password hash value in the signaling to confirm the agent's identity and legitimacy; and verifies whether the terminal IP is within the preset "allowed access network segment" (e.g., 192.168.1.0 / 24) to prevent unauthorized terminal access.

[0087] 3. Verification result feedback: After successful verification, the Kamailio server generates a "200 OK" response signal and sends it back to the agent terminal. The terminal pops up a window to indicate "Sign-in successful" and synchronizes the agent status to the agent status dashboard on the CTI backend.

[0088] (2) Call link establishment stage of agent terminal

[0089] 4. Manual Outbound Call Request Initiation and Verification: The agent enters the target user's number on the terminal, selects the outbound call task type ("After-sales Follow-up"), and fills in the task number (e.g., "TASK20250820001"). After clicking "Initiate Outbound Call," the terminal sends an outbound call request to the CTI backend via the HTTP POST protocol, including the following core parameters:

[0090] {"agentId":"CS202508","targetPhone":"123XXXX5678","taskId":"TASK20250820001","expectedDuration":"5min"};

[0091] 5. CTI Backend Request Processing and Command Generation: After receiving the request, the CTI backend performs three-layer validation:

[0092] Parameter integrity check: Check if any required fields such as "agentId" or "targetPhone" are missing;

[0093] Agent status verification: Call the Kamailio server's status query interface to confirm that agent "CS202408" is currently in the "online and idle" state;

[0094] Number validity verification: Verify whether the target mobile number format conforms to the "11-digit number" rule using regular expressions;

[0095] After the verification is successful, the CTI backend triggers the CTI engine to generate the first call command, which includes the agent ID, call priority, and retry policy ("retry twice if the agent does not answer, with a 10-second interval between each retry"), and sends it to FreeSWITCH.

[0096] 6. Agent Terminal Ringing and Link Establishment: After FreeSWITCH parses the first call command, it queries the Kamailio server for the terminal IP (192.168.1.101) corresponding to agent "CS202508", generates a SIPIVITE signaling message, and forwards it to the agent terminal through the Kamailio server. After receiving the signaling message, the terminal triggers ringing. After the agent clicks "Answer", the terminal generates a "SIP200OK" response signaling message, which is sent back to FreeSWITCH through the Kamailio server. After FreeSWITCH confirms that the agent terminal link is established, it sends a "First Link Establishment Event" to the CTI engine. The event includes the link establishment time and link quality indicators. The agent terminal call link is officially established, and the terminal prompts "Waiting for user to answer".

[0097] (3) Link association and user call stage

[0098] 7. Second call command issuance and link creation: After receiving the "first link establishment event", the CTI engine immediately executes the second call command (bridge command) when calling FreeSWITCH. In the session of the agent terminal call link, the target user terminal call link is created, and the media stream bridging and signaling association between the agent terminal call link and the target user terminal call link are realized simultaneously, completing the full association of the two links.

[0099] 8. User Call Signaling Sending and Ringing Trigger: FreeSWITCH generates a call request signaling message for the target user terminal, adding the enterprise registration number "ICP2024XXXX" and the call source identifier "CTI_SYSTEM_2025" to the signaling message, and sends it to the Kamailio server through a preset call route; the Kamailio server converts the signaling message into a SIP protocol version adapted to the target line server, and then sends it to the target line server through a dedicated line, while simultaneously enabling a "3-second timeout retransmission mechanism" to trigger the target user terminal to ring;

[0100] 9. Target User Terminal Link Establishment and Call Initiation: After receiving the SIP call signaling, the target line server verifies the validity of the enterprise registration number and initiates a call to the target user terminal through the operator's core network. After hearing the ring, the target user clicks "Answer," and the terminal generates a "SIP200OK" response signaling, which is transmitted back to FreeSWITCH via the line server and Kamailio server. FreeSWITCH sends a "Second Link Establishment Event" to the CTI engine, forming an end-to-end voice path of "Agent Terminal - Kamailio - FreeSWITCH - Line Server - User Terminal."

[0101] (4) Call data storage stage

[0102] 10. Call End Trigger and Data Collection: When the agent clicks "Hang Up" or the target user actively hangs up, the terminal that initiated the hang-up generates a "SIPBYE" signaling message, which is transmitted back to FreeSWITCH via the existing link. After receiving the hang-up signaling message, FreeSWITCH disconnects the media stream bridge and signaling association between the agent terminal and the target user terminal, generates a "Call End Event", and triggers the data collection process at the same time.

[0103] Call detail record (CDR) data collection: FreeSWITCH automatically collects all call information and generates CDRs in JSON format, including fields such as: call UUID, agent ID, user number, call initiation time, call start time, call end time, call duration, link packet loss rate, line party identifier, and task number.

[0104] Audio recording data acquisition: FreeSWITCH temporarily stores the audio files (WAV format, sampling rate 8kHz) recorded in real time during the call on the local disk;

[0105] Data transmission and centralized storage: FreeSWITCH synchronously transmits call detail record (CDR) data and recording file paths to the CTI engine;

[0106] After receiving the data, the CTI engine performs data distribution and storage:

[0107] Call detail record (CDR) data: written to the backend MySQL database, and the call result (such as "user agrees to follow-up call") and CDR association information are updated to the corresponding customer profile.

[0108] Recording data: The CTI engine uploads the file to cloud storage, generates a permanent access link, and writes it to the "record_url" field of the call detail record;

[0109] 11. Data Feedback and Query Support: The CTI engine sends a "Call data has been stored" notification to the agent terminal, including the call detail record (CDR) ID and recording access link. At the same time, the CTI engine provides a data retrieval interface, allowing administrators to query historical CDRs and recordings by agent ID, call time, user number, and other criteria to meet subsequent quality inspection and business analysis needs.

[0110] This embodiment unifies agent registration, call control, call detail records (CDRs), and call recording storage within an open protocol stack through a software-defined signaling routing and event feedback mechanism, achieving lightweight deployment without external hardware. Simultaneously, by implementing the business logic of first establishing link association before initiating a call to the target user, it solves the "real ringback tone" problem. Centralized storage of call data avoids "data silos." Compared to traditional solutions, it shortens the time required to establish outbound call links and eliminates the need for periodic hardware iterations or complex system upgrades, reducing enterprise operation and maintenance costs.

[0111] It should be noted that the sequence numbers of the steps in the above embodiments do not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application. In practical applications, all the above possible implementation methods can be arbitrarily combined in a combined manner to form possible embodiments of this application, which will not be described in detail here.

[0112] Based on the CTI-based manual outbound calling methods provided in the above embodiments, and based on the same inventive concept, this application also provides a CTI-based manual outbound calling device.

[0113] Figure 6 This is a schematic diagram of the structure of the CTI-based manual outbound calling device provided in the embodiments of this application. Figure 6As shown, the CTI-based manual outbound calling device may specifically include an agent registration unit 210, an agent terminal call control unit 220, a target user terminal call control unit 230, and a data storage unit 240.

[0114] Seat registration unit 210 is used by the seat terminal to respond to the seat's registration operation by sending a registration request to the SIP proxy server to complete the seat check-in;

[0115] The agent terminal calls the control unit 220 in response to the agent terminal's manual outbound call request initiated to the CTI backend through a preset network protocol. The CTI backend calls FreeSWITCH through the CTI engine to execute the first call command, completes the creation of the agent terminal call link, and FreeSWITCH sends the first link establishment event back to the CTI engine.

[0116] After the target user terminal calls the control unit 230, the CTI engine receives the first link establishment event and calls FreeSWITCH to execute the second call command. Based on the established agent terminal call link, the target user terminal call link is created, the association between the agent terminal call link and the target user terminal link is established, the target user terminal rings, and in response to the target user's answering operation, FreeSWITCH feeds back the second link establishment event to the CTI engine, realizing the call between the agent and the target user.

[0117] Data storage unit 240 is used to respond to the hang-up operation of the agent terminal or the target user terminal. FreeSWITCH records the call detail record (CDR) data and recording data corresponding to the call and transmits the CDR data and recording data to the CTI engine to complete data storage.

[0118] This application embodiment provides a possible implementation, wherein the agent terminal call control unit 220 is further configured to:

[0119] FreeSWITCH generates a call request signaling for the agent terminal based on the first call command; wherein, the first call command is the originate command;

[0120] FreeSWITCH sends the call request signaling from the agent terminal to the SIP proxy server through a preset call route. The SIP proxy server then forwards the call request signaling from the agent terminal to the agent terminal, triggering the agent terminal to ring.

[0121] In response to the agent clicking to answer the call after hearing the ring, the agent terminal generates a first response signaling and sends it to FreeSWITCH through the SIP proxy server;

[0122] After receiving the first response signaling, FreeSWITCH generates a first link establishment event indicating that the agent has answered the call and sends it to the CTI engine.

[0123] This application embodiment provides a possible implementation, wherein the target user terminal call control unit 230 is further configured to:

[0124] When FreeSWITCH executes the second call command, it creates a target user terminal call link in the session of the agent terminal call link; wherein, the second call command is a bridge command;

[0125] FreeSWITCH enables media stream bridging and signaling association between the agent terminal call link and the target user terminal call link, achieving complete association between the agent terminal call link and the target user terminal call link.

[0126] This application embodiment provides a possible implementation, wherein the target user terminal call control unit 230 is further configured to:

[0127] FreeSWITCH generates a call request signaling message for the target user terminal and sends it to the SIP proxy server through a preset call route. The SIP proxy server then forwards the signaling message to the target line server, triggering the target user terminal to ring.

[0128] In response to the target user's answering operation, the target user's terminal returns a second answering response signaling, which is transmitted back to FreeSWITCH via the target line server and the SIP proxy server.

[0129] After receiving the second response signaling, FreeSWITCH generates a second link establishment event and feeds it back to the CTI engine, forming an end-to-end voice path between the agent terminal and the target user terminal.

[0130] This application embodiment provides a possible implementation, wherein the data storage control unit 240 is further configured to:

[0131] In response to the hang-up operation of the target user, the target user terminal generates a hang-up signaling message, which is forwarded to FreeSWITCH via the SIP proxy server and the target line server; or in response to the hang-up operation of the agent, the agent terminal generates a hang-up signaling message, which is forwarded to FreeSWITCH via the SIP proxy server.

[0132] After receiving the hang-up signaling, FreeSWITCH disconnects the media stream bridge and signaling association between the agent terminal and the target user terminal, and generates a call end event.

[0133] FreeSWITCH collects and records call detail records (CDRs) and audio recordings based on call end events.

[0134] After receiving the call end event, the CTI engine writes the call detail record (CDR) data and recording data to the storage medium.

[0135] Based on the same inventive concept, embodiments of this application also provide an electronic device, including a processor and a memory, wherein the memory stores a computer program, and the processor is configured to run the computer program to execute the CTI-based manual outbound call implementation method of any of the above embodiments.

[0136] In an exemplary embodiment, see Figure 7 An electronic device is provided, comprising: a communication bus, a processor, a memory, and a communication interface, and may further include a software service interface and a workstation interface. The processor and memory are connected, for example, via a bus. Optionally, the electronic device may also include a transceiver. It should be noted that in practical applications, the transceiver is not limited to one, and the structure of this electronic device does not constitute a limitation on the embodiments of this application.

[0137] The processor can be a CPU (Central Processing Unit), GPU (Graphics Processing Unit), DSP (Digital Signal Processor), ASIC (Application Specific Integrated Circuit), FPGA, or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computational functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.

[0138] A bus can include a pathway for transmitting information between the aforementioned components. The bus can be a PCI (Peripheral Component Interconnect) bus or an EISA (Extended Industry Standard Architecture) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, Figure 6 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.

[0139] The memory may be ROM (Read Only Memory) or other types of static storage devices capable of storing static information and instructions, RAM (Random Access Memory) or other types of dynamic storage devices capable of storing information and instructions, or EEPROM (Electrically Erasable Programmable Read Only Memory), CD-ROM (Compact Disc Read Only Memory) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited to these.

[0140] The memory stores computer program code that executes the scheme of this application, and its execution is controlled by a processor. The processor executes the computer program code stored in the memory to implement the content shown in the foregoing method embodiments.

[0141] Among them, electronic devices include, but are not limited to: mobile terminals such as mobile phones, laptops, digital radio receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), and in-vehicle terminals (such as in-vehicle navigation terminals), as well as fixed terminals such as digital TVs and desktop computers. Figure 6 The electronic device shown is merely an example and should not impose any limitation on the functionality and scope of use of the embodiments of this application.

[0142] Based on the same inventive concept, this application also provides a storage medium storing a computer program, wherein the computer program is configured to execute the CTI-based manual outbound call implementation method of any of the above embodiments when running.

[0143] Based on the same inventive concept, this application also provides a computer program product, including a computer program configured to execute the CTI-based manual outbound call implementation method of any of the above embodiments at runtime.

[0144] Those skilled in the art will clearly understand that the specific working process of the systems, devices, and modules described above can be referred to the corresponding process in the foregoing method embodiments. For the sake of brevity, it will not be repeated here.

[0145] Those skilled in the art will understand that the technical solution of this application, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several program instructions to cause an electronic device (e.g., a personal computer, server, or network device) to execute all or part of the steps of the methods in the embodiments of this application when running the program instructions. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, portable hard drive, read-only memory (ROM), random access memory (RAM), magnetic disk, or optical disk.

[0146] Alternatively, all or part of the steps of the foregoing method embodiments can be implemented by hardware (such as electronic devices like personal computers, servers, or network devices) related to program instructions. The program instructions can be stored in a computer-readable storage medium. When the program instructions are executed by the processor of the electronic device, the electronic device executes all or part of the steps of the methods of the various embodiments of this application.

[0147] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that within the spirit and principles of this application, modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein; and these modifications or substitutions do not cause the corresponding technical solutions to leave the protection scope of this application.

Claims

1. A method for implementing manual outbound calling based on CTI, characterized in that the method... include: In response to the agent's registration operation, the agent terminal sends a registration request to the SIP proxy server to complete the agent check-in. In response to a manual outbound call request initiated by the agent terminal to the CTI backend via a preset network protocol, the CTI backend calls FreeSWITCH through the CTI engine to execute the first call command, completes the creation of the agent terminal call link, and FreeSWITCH sends the first link establishment event back to the CTI engine. After receiving the first link establishment event, the CTI engine calls FreeSWITCH to execute the second call command. Based on the established agent terminal call link, it completes the creation of the target user terminal call link, establishes the association between the agent terminal call link and the target user terminal link, triggers the target user terminal to ring, responds to the target user's answering operation, and FreeSWITCH feeds back the second link establishment event to the CTI engine, realizing the call between the agent and the target user. In response to a hang-up operation by an agent or target user, FreeSWITCH records the corresponding call detail record (CDR) data and recording data, and then transmits the CDR data and recording data to the CTI engine to complete data storage.

2. The method according to claim 1, characterized in that, The default network protocol includes the HTTP protocol. Manual outbound call requests are HTTP POST requests, and the request body contains the agent's ID, the target user's number, and the outbound call task number.

3. The method according to claim 2, characterized in that, The CTI backend calls FreeSWITCH through the CTI engine to execute the first call command, completing the creation of the call link for the agent terminal. FreeSWITCH then sends a first link establishment event back to the CTI engine, including: FreeSWITCH generates a call request signaling for the agent terminal based on the first call command; wherein, the first call command is the originate command; FreeSWITCH sends the call request signaling from the agent terminal to the SIP proxy server through a preset call route. The SIP proxy server then forwards the call request signaling from the agent terminal to the agent terminal, triggering the agent terminal to ring. In response to the agent clicking to answer the call after hearing the ring, the agent terminal generates a first response signaling and sends it to FreeSWITCH through the SIP proxy server; After receiving the first response signaling, FreeSWITCH generates a first link establishment event indicating that the agent has answered the call and sends it to the CTI engine.

4. The method according to any one of claims 1 to 3, characterized in that, After receiving the first link establishment event, the CTI engine calls FreeSWITCH to execute the second call command. Based on the established agent terminal call link, it generates the target user terminal call link and establishes the association between the agent terminal call link and the target user terminal link, including: When FreeSWITCH executes the second call command, it creates a target user terminal call link in the session of the agent terminal call link; wherein, the second call command is a bridge command; FreeSWITCH enables media stream bridging and signaling association between the agent terminal call link and the target user terminal call link, achieving complete association between the agent terminal call link and the target user terminal call link.

5. The method according to any one of claims 1 to 3, characterized in that, The system triggers the target user's terminal to ring. In response to the target user's answering action, FreeSWITCH sends a second link establishment event to the CTI engine, enabling the agent to communicate with the target user, including: FreeSWITCH generates a call request signaling message for the target user terminal and sends it to the SIP proxy server through a preset call route. The SIP proxy server then forwards the signaling message to the target line server, triggering the target user terminal to ring. In response to the target user's answering operation, the target user's terminal returns a second answering response signal, which is transmitted back to FreeSWITCH via the target line server and the SIP proxy server. After receiving the second response signaling, FreeSWITCH generates a second link establishment event and feeds it back to the CTI engine, forming an end-to-end voice path between the agent terminal and the target user terminal.

6. The method according to claim 5, characterized in that, In response to a hang-up operation by an agent or target user, FreeSWITCH records the corresponding call detail record (CDR) data and recording data, and then transmits the CTI data to the CTI engine for data storage, including: In response to the hang-up operation of the target user, the target user terminal generates a hang-up signaling message, which is forwarded to FreeSWITCH via the SIP proxy server and the target line server; or in response to the hang-up operation of the agent, the agent terminal generates a hang-up signaling message, which is forwarded to FreeSWITCH via the SIP proxy server. After receiving the hang-up signaling, FreeSWITCH disconnects the media stream bridge and signaling association between the agent terminal and the target user terminal, and generates a call end event. FreeSWITCH collects and records call detail records (CDRs) and audio recordings based on call end events. After receiving the call end event, the CTI engine writes the call detail record (CDR) data and recording data to the storage medium.

7. A CTI-based device for enabling manual outbound calls, characterized in that, The device includes: The agent registration unit is used by the agent terminal to respond to the agent's registration operation by sending a registration request to the SIP proxy server to complete the agent check-in. The agent terminal call control unit is used to respond to the manual outbound call request initiated by the agent terminal to the CTI backend through a preset network protocol. The CTI backend calls FreeSWITCH through the CTI engine to execute the first call command, completes the creation of the agent terminal call link, and FreeSWITCH feeds back the first link establishment event to the CTI engine. The target user terminal call control unit is used by the CTI engine to call FreeSWITCH to execute the second call command after receiving the first link establishment event. Based on the established agent terminal call link, it completes the creation of the target user terminal call link, establishes the association between the agent terminal call link and the target user terminal link, triggers the target user terminal to ring, responds to the target user's answering operation, and FreeSWITCH feeds back the second link establishment event to the CTI engine to realize the call between the agent and the target user. The data storage unit is used to respond to the hang-up operation of the agent terminal or the target user terminal. FreeSWITCH records the call detail record (CDR) data and recording data corresponding to the call and transmits the CDR data and recording data to the CTI engine to complete the data storage.

8. An electronic device, characterized in that, The method includes a processor and a memory, wherein the memory stores a computer program, and the processor is configured to run the computer program to perform the CTI-based manual outbound calling implementation method according to any one of claims 1 to 6.

9. A storage medium, characterized in that, The storage medium stores a computer program, wherein the computer program is configured to execute the CTI-based manual outbound call implementation method according to any one of claims 1 to 6 when it runs.

10. A computer program product, comprising a computer program, characterized in that, The computer program is configured to execute the CTI-based manual outbound calling implementation method as described in any one of claims 1 to 6 at runtime.

Citation Information

Patent Citations

  • Drive mechanism,especially for weaving machines

    CS202408B1

  • System for illumination of the rod sight marks of optical instruments particularly the dial sights

    CS202508B2