Call testing method, device, electronic device and storage medium
By using virtual numbers and early media identification, automatically playing and comparing status indicator information, the call center's testing difficulties in early media reception and analysis processes are solved, and efficient and comprehensive testing results are achieved.
Patent Information
- Application Number
- CN202211096040.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-08
- Publication Date
- 2025-06-20
- Estimated Expiration
- 2042-09-08
AI Technical Summary
The prior art is difficult to effectively test the call center's reception and analysis process of early media, especially due to the limited number of real numbers and unpredictable status, which makes it impossible to achieve comprehensive testing.
A virtual number is used instead of the real number. By obtaining the early media identifier corresponding to the virtual number, the status indication information generated by the device under test is automatically played and obtained, and the status information generated by the test is compared with the standard status information to determine the test result.
A comprehensive test of the early media reception and parsing process of the call center is realized, avoiding the limitation of real numbers and improving testing efficiency and accuracy.
Smart Images

Figure CN116156051B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of communication technologies, and particularly to a call test method, apparatus, electronic device, and storage medium. Background Art
[0002] Early media refers to the voice media stream sent by an operator to a calling party before the called party answers, before the called party rejects, or before the call ends without reaching the called customer. Through early media, the status of the called user can be indicated. For example, the number is an invalid number, out of service area, in a call, etc. Correspondingly, a call center can identify the call result according to the parsing result of the received early media, so that the upstream service system can timely identify invalid numbers and avoid repeated calls. However, since faults may occur in the process of receiving and parsing early media, it is necessary to test the process of receiving and parsing early media. Summary of the Invention
[0003] The present disclosure provides a call test method, apparatus, electronic device, and storage medium for solving the problem of how to test the process of receiving and parsing early media.
[0004] In a first aspect, the present disclosure provides a call test method, including:
[0005] Obtain the called number included in a call command, and when it is determined that the called number is a virtual number, obtain a pre-configured early media identifier corresponding to the called number;
[0006] Play the early media corresponding to the early media identifier, and obtain status indication information generated by a device under test based on the early media;
[0007] Compare the status indication information with standard status information corresponding to the early media identifier, and determine a call test result according to the comparison result.
[0008] In a second aspect, the present disclosure provides a call test apparatus, including:
[0009] An obtaining module, adapted to obtain the called number included in a call command, and when it is determined that the called number is a virtual number, obtain a pre-configured early media identifier corresponding to the called number;
[0010] A playing module, adapted to play the early media corresponding to the early media identifier, and obtain status indication information generated by a device under test based on the early media;
[0011] A comparing module, adapted to compare the status indication information with standard status information corresponding to the early media identifier, and determine a call test result according to the comparison result.
[0012] In a third aspect, the present disclosure provides an electronic device, which includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein, the memory stores one or more computer programs executable by the at least one processor, and the one or more computer programs are executed by the at least one processor so that the at least one processor can execute the above method.
[0013] In a fourth aspect, the present disclosure provides a computer-readable storage medium, on which a computer program is stored, wherein the computer program, when executed by a processor / processing core, implements the above method.
[0014] In the embodiments provided by the present disclosure, when it is determined that the called number in the call command is a virtual number, an early media identifier corresponding to the called number is obtained; the early media corresponding to the early media identifier is played, and status indication information generated by the device under test based on the early media is obtained; the call test result is determined by comparing the status indication information with the standard status information corresponding to the called number. In this method, a virtual number is used as the called number, avoiding the influence of uncertain factors such as the limited number of real numbers and unknown call statuses, and can automatically obtain and play the early media corresponding to the called number, and then detect whether the status indication information generated by the device under test for the early media is correct. It can be seen that this method can simulate the operator to automatically play the early media corresponding to the called number, so as to test whether the status indication information generated by the device under test is correct, improving the test efficiency.
[0015] It should be understood that the content described in this part is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it used to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] The drawings are used to provide a further understanding of the present disclosure, and constitute a part of the specification. They are used together with the embodiments of the present disclosure to explain the present disclosure, and do not constitute a limitation to the present disclosure. By describing the detailed exemplary embodiments with reference to the drawings, the above and other features and advantages will become more obvious to those skilled in the art. In the drawings:
[0017] Figure 1 is a flowchart of a call test method provided for an embodiment of the present disclosure;
[0018] Figure 2 is a flowchart of a call test method provided for another embodiment of the present disclosure;
[0019] Figure 3 shows a schematic diagram of a call solution;
[0020] Figure 4 Flow chart of a call test method provided for a specific example of the present disclosure;
[0021] Figure 5 Schematic diagram of an interface for managing early media recording files;
[0022] Figure 6 Schematic diagram of a dial plan file;
[0023] Figure 7 Schematic diagram of a test case file;
[0024] Figure 8 Block diagram of a call test device provided for an embodiment of the present disclosure;
[0025] Figure 9 Block diagram of an electronic device provided for an embodiment of the present disclosure. Detailed implementation manners
[0026] To enable those skilled in the art to better understand the technical solutions of the present disclosure, the following describes exemplary embodiments of the present disclosure with reference to the accompanying drawings. Various details of the embodiments of the present disclosure are included to assist in understanding, and they should be considered merely exemplary. Therefore, those of ordinary skill in the art should recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. Similarly, for clarity and conciseness, descriptions of well-known functions and structures are omitted below.
[0027] Without conflict, the embodiments of the present disclosure and the features in the embodiments can be combined with each other.
[0028] As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.
[0029] The terms used herein are only for describing specific embodiments and are not intended to limit the present disclosure. As used herein, the singular forms "a" and "the" are also intended to include the plural forms unless the context clearly indicates otherwise. It will also be understood that when the terms "comprise" and / or "consist of" are used in this specification, it specifies the presence of the described features, wholes, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components, and / or their groups. "Connection" or "connected" and other similar words are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect.
[0030] Unless otherwise defined, all terms (including technical and scientific terms) used herein shall have the same meaning as commonly understood by one of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries shall be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and this disclosure, and shall not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
[0031] The call test method according to an embodiment of the present disclosure can be executed by an electronic device such as a terminal device or a server. The terminal device can be a vehicle-mounted device, a user equipment (UE), a mobile device, a user terminal, a terminal, a cellular phone, a cordless phone, a personal digital assistant (PDA), a handheld device, a computing device, a vehicle-mounted device, a wearable device, etc.; the server can be an independent physical server, a server cluster or a distributed system composed of multiple physical servers, or a cloud server providing cloud computing services. Specifically, the method can be implemented by a processor calling a computer program stored in a memory.
[0032] In the related art, in order to test whether a call center can normally receive and parse early media, a real number needs to be dialed for testing. During the dialing process, a call command needs to be sent to the operator, and the early media corresponding to the real number returned by the operator needs to be received. Since the number of real numbers is limited and the current status of each real number is unpredictable, and the early media sent to the call center depends on the operator, therefore, it may not be possible to obtain the parsing results of various types of early media through testing, and thus the purpose of comprehensive testing cannot be achieved. To solve the above problems, in the present disclosure, a virtual number is used instead of a real number, that is, the operator is simulated to return early media to the call center, so that the test of the early media identification status is decoupled from the operator, and furthermore, various types of early media are pre-configured, and the effect of comprehensive testing is achieved by automatically playing the early media corresponding to the called number.
[0033] Figure 1 The flowchart of a call test method provided for an embodiment of the present disclosure. Refer to Figure 1 , the method includes:
[0034] Step S110: Obtain the called number included in the call command, and when it is determined that the called number is a virtual number, obtain the early media identifier corresponding to the called number.
[0035] Among them, a virtual number refers to: a user number simulated through client software, which is different from the real number corresponding to a real user, and there is no corresponding real user for the virtual number. If the called number included in the call command is a virtual number, it can be determined that the call command is a test-type call command. Correspondingly, obtain the early media identifier pre-configured corresponding to the called number.
[0036] Step S120: Play the early media corresponding to the early media identifier, and obtain the status indication information generated by the device under test based on the early media.
[0037] Specifically, the early media corresponding to the early media identifier can be played in various ways. The early media is the voice content simulated by the operator and can be flexibly configured according to test requirements.
[0038] When playing the early media, the early media can be pre-stored in the early media library. Correspondingly, directly based on the early media identifier, obtain the corresponding early media from the early media library and perform the play operation to simulate the operation of the operator returning the early media. Correspondingly, the status indication information generated by the device under test based on the early media can be obtained. Among them, the device under test is usually a call center.
[0039] The status indication information refers to: the information used to indicate the current status of the called number generated according to the type of the early media, for example, it can be various types such as a status code.
[0040] Step S130: Compare the status indication information with the standard status information corresponding to the early media identifier, and determine the call test result according to the comparison result.
[0041] Among them, the standard status information corresponding to the early media identifier is used to describe the status of the called number indicated by the early media. After the device under test receives the early media, it parses the early media and determines the status indication information according to the parsing result. If the device under test operates normally, the parsed status indication information should be the same as the standard status information. Therefore, by comparing the status indication information with the standard status information corresponding to the early media identifier, it can be determined whether the call test result is normal.
[0042] In this method, using a virtual number as the called number avoids the influence of uncertain factors such as the limited number of real numbers and the unknown call status, can automatically obtain and play the early media corresponding to the called number, and then detect whether the status indication information generated by the device under test for the early media is correct. It can be seen that this method can simulate the operator to automatically play the early media corresponding to the called number, so as to test whether the status indication information generated by the device under test is correct, improving the test efficiency.
[0043] Figure 2A flowchart of a call test method provided for another embodiment of the present disclosure. Refer to Figure 2 , the method includes:
[0044] Step S210: Configure the device identifiers and test case files of each softswitch device through a configuration server.
[0045] Among them, the softswitch device can be implemented through an open-source telephone switching platform across platforms. For example, the softswitch device is FreeSwitch. The call center can include multiple softswitch devices, and multiple softswitch devices can process call commands in parallel with each other, thereby improving the test efficiency. Correspondingly, in order to make full use of multiple softswitch devices during the test, it is necessary to pre-configure the device identifiers and test case files of each softswitch device through a configuration server.
[0046] Among them, the configuration server is used to display a configuration interface for the configurator to perform configuration. In the configuration interface, there are device configuration entries and test case configuration entries. By setting the configuration entries, the device identifiers of each softswitch device can be configured. Among them, the device identifiers of each softswitch device include: domain name address and / or IP port. Through the test case configuration entry, the test case files stored on each softswitch device can be configured. Among them, the test case files stored on each softswitch device can be the same or different.
[0047] Step S220: Configure the types and quantities of the early media pre-stored in the early media library of each softswitch device through the early media configuration entry in the configuration server.
[0048] Among them, the configuration interface further includes an early media configuration entry, and the early media configuration entry specifically includes: a media upload entry for uploading early media, a media deletion entry for deleting early media, a media playback entry for playing early media, etc. Through the early media configuration entry, multiple early media can be managed flexibly and conveniently. Among them, different early media correspond to different voice contents and number states. Table 1 shows the contents of various types of early media.
[0049] Table 1
[0050]
[0051]
[0052] Step S230: Obtain the called number included in the call command. When it is determined that the called number is a virtual number, obtain the early media identifier corresponding to the called number.
[0053] Among them, the call command can be triggered in batches through outbound tasks. Correspondingly, after receiving the call command, the softswitch device obtains the called number included in the call command and determines whether the called number is a virtual number. For example, the called number is matched with the virtual numbers included in the preset test case file; if the match is successful, it is determined that the called number is a virtual number. Among them, a virtual number refers to: a user number simulated by means of client software, which is different from the real number corresponding to a real user, and there is no corresponding real user for the virtual number. If the called number included in the call command is a virtual number, it can be determined that the call command is a test call command. Correspondingly, the pre-configured early media identifier corresponding to the called number is obtained. For example, the early media identifier corresponding to the called number is obtained from the test case file. Among them, the test case file is pre-configured by the configuration server, and at least stores multiple virtual numbers and the early media identifiers corresponding to each virtual number.
[0054] In one implementation, when obtaining the early media identifier corresponding to the called number, through the media acquisition interface, the early media pre-stored in the early media library corresponding to the early media identifier is obtained; among them, the early media identifier is used to indicate the type of early media, and various types of early media are pre-stored in the early media library.
[0055] Step S240: Play the early media corresponding to the early media identifier.
[0056] Specifically, the early media corresponding to the early media identifier can be played through the recording replay command to simulate the operation of the operator returning the early media. In addition, those skilled in the art can also replace the recording replay command with other commands, as long as the operation of playing the early media can be realized. The present invention does not limit the specific connotation of the recording replay command.
[0057] In one implementation, when playing the early media corresponding to the early media identifier, it is specifically implemented in the following manner: execute the pre-answer command; play the early media corresponding to the early media identifier through the recording replay command; execute the answer command; execute the hang-up command. For example, first, execute the pre-answer command; then, after sleeping for the first preset duration, play the early media corresponding to the early media identifier through the recording replay command; next, after sleeping for the second preset duration, execute the answer command, and finally execute the hang-up command. Among them, by sleeping for the preset duration, the system can rest temporarily, thereby releasing the system pressure and preventing accidents such as system crashes caused by excessive processing pressure, especially applicable to the stress test scenario. Of course, in the case of better system performance, the sleep operation can also not be executed, and the present invention does not limit the specific details.
[0058] For example, when the call center makes an outbound call, FreeSwitch establishes a Real-time Transport Protocol (RTP) session with the Media Resource Control Protocol Server (Mrcp Server) included in the call center. FreeSwitch matches the called number with the extension included in the test case file. Here, the extension can be in regular expression form, representing a certain number or a batch of numbers. After parsing the test case file, it executes the pre_answer command in the test case file (equivalent to FreeSwitch directly sending the SIP 183 signaling to the calling end). After sleeping for a while, it executes the playback command to play the recorded file of the early media, and the tester can hear the content of the voice broadcast in the recorded file. After playing the recorded file, it sleeps for a while, then executes the answer command (equivalent to FreeSwitch directly sending the SIP 200 signaling to the calling end) to answer, and finally executes the hang up command to end the call.
[0059] Step S250: Obtain the status indication information generated by the device under test based on the early media.
[0060] After playing the early media, it is possible to obtain the status indication information generated by the device under test based on the early media. Here, the device under test is usually a call center. The status indication information refers to the information used to indicate the current status of the called number generated according to the type of the early media. For example, it can be various types such as a status code. In one implementation, when obtaining the status indication information generated by the device under test based on the early media, it is specifically implemented in the following way: sending the early media to the device under test, obtaining the log information of the device under test, and extracting the status indication information from the log information; where the device under test includes: the Media Resource Control Protocol Server (Mrcp Server) included in the call center. This Media Resource Control Protocol Server is used to obtain the early media and perform speech-to-text processing on the early media to generate status indication information according to the processing result.
[0061] Step S260: Compare the status indication information with the standard status information corresponding to the early media identifier, and determine the call test result according to the comparison result.
[0062] Among them, the standard status information corresponding to the early media identifier is used to describe the called number status indicated by the early media. After receiving the early media, the device under test parses the early media and determines the status indication information according to the parsing result. If the device under test operates normally, the parsed status indication information should be the same as the standard status information. Therefore, by comparing the status indication information with the standard status information corresponding to the early media identifier, it is possible to determine whether the call test result is normal.
[0063] Specifically, obtain the standard status information corresponding to the early media identifier from the test case file, and compare the status indication information with the obtained standard status information; if the comparison result is the same, determine that the call test result is normal; if the comparison result is different, determine that the call test result is abnormal.
[0064] It can be seen that through the method in the above embodiments, it is possible to pre-generate a test case file, and FreeSwitch, relying on the code information contained in the test case file, simulates the operator to return early media to the calling end and performs operations such as answering and hanging up at the called end. It can be seen that through the test case file, FreeSwitch can simultaneously achieve the following two functions: on the one hand, it can replace the operator to return early media, and since the relationship between the early media and the called number is pre-configured, various types of early media can be flexibly configured, and then it is possible to test whether the parsing results of the call center for various types of early media are normal, thus ensuring the comprehensiveness and accuracy of the test; on the other hand, it can replace the real called user to perform auxiliary operations such as answering and hanging up, and then test whether the processing logic of the call center is correct. This method can flexibly implement the test function for the call center.
[0065] For the sake of easy understanding, the following takes a specific example to introduce the specific implementation details of the above embodiments in detail.
[0066] In this example, the call center is responsible for predictive outbound calls or bulk outbound calls. An outbound call task usually needs to call tens of thousands to hundreds of thousands of customers. For each outbound call, a call timeout duration is set (usually 30 seconds). After the system dials a customer, it will wait for at most 30 seconds (the specific time can be configured by itself) and then stop waiting. Instead, it will actively send a hang-up event to end the outbound call. In the collection business, the outbound call connection rate is generally between 8% and 15%. In the telesales business, the connection rate is generally around 40%. In the case of non-connection, except that the customer does not answer or rejects the call when the phone rings, the basic reasons for the other non-connections are: the number is an invalid number, out of service area, in a call, transferred to voicemail, SMS call service, communication assistant, the number has been enabled for suspended service, the number has expired, powered off, etc. Since the system cannot recognize these situations, when encountering such non-connection situations, the system needs to wait until the call timeout duration reaches 30s before hanging up, resulting in low outbound call efficiency. If multiple rounds of calls are set for the predictive outbound call task, the total call timeout duration is 30s * the number of call rounds, and the call is even more inefficient. Specifically, when the call center fails to dial the customer's mobile phone, it does not return the specific reason to the upstream business system (such as the collection or telesales system). Therefore, the upstream business system does not know the real reason for the non-connection of the call and cannot identify the non-connected calls. As a result, these non-connected and possibly short-term or permanently un-dialable numbers will be called again in the future outbound call list, which not only wastes the outbound call line resources but also makes the work ineffective or reduces the efficiency.
[0067] To solve the above problems, when the call center calls a user, the operator sends early media to the call center, and the call center then pushes the early media to the Mrcp server. Among them, the address of the Mrcp server needs to be pre-configured in the mrcp_profiles configuration file of FreeSwitch. The Mrcp server converts the voice of the early media into text and calls an algorithm to detect the text content. According to different text contents, it returns different status codes to the call center. The call center decides whether to end the call immediately without waiting for 30s based on different status codes. This can reduce unnecessary waiting time and improve the outbound call rate. In the above solution, the call center needs to identify the status of the call not being connected and feedback the reason for the non-connection to the upstream system. The upstream system can classify and mark the reasons for the non-connection of the call so that when cleaning the list, it can be screened according to the reasons for the non-connection and different call strategies can be formulated. For example, for an invalid number, the number is removed; if it is out of service or powered off, etc., the call interval duration can be increased, etc. This can not only reduce unnecessary outbound calls but also improve the effectiveness of the call list. Figure 3 The schematic diagram of the above solution is shown. As Figure 3 shown, the above outbound call interaction process specifically includes the following steps:
[0068] Step S301: The outbound call task is started.
[0069] Step S302: The call center system dials the called number.
[0070] Step S303: When early media detection is enabled, the Mrcp server receives the early media stream.
[0071] Step S304: The Mrcp server invokes algorithm detection, determines the type of the early media stream according to the detection result, and returns the number detection result to the call center system.
[0072] Step S305: The call center system receives the number detection result.
[0073] Step S306: The call center system determines whether the call is connected. If not, it determines whether to hang up according to the number status, and determines whether to perform the hang-up operation according to the judgment result.
[0074] Step S307: The SDK returns the number detection result to the upstream service system and stores the number detection result in the call center database.
[0075] This example aims to test whether the call center can correctly parse different early media during the above process to obtain the correct status code. For example, it is necessary to test whether the call center (the object under test) can correctly perform different logical operations according to different status codes when receiving various different status codes returned by the MrCP server. For example, when the call center receives the status code 209 (indicating that the user is busy) returned by the MrCP server, the call center will immediately hang up automatically and send the reason for hanging up to the upstream system. There are multiple problems faced when testing the above solutions: First, testing the functions of the call center depends on the operator to return different early media streams to the FreeSwitch of the call center, and the call center sends these early media streams to the MrCP server for detection. However, there are many test scenarios that cannot be triggered even when testers dial real user mobile phone numbers (subject to the operator). For example, line failures, expired numbers, suspended services, etc. In addition, some scenarios also require specific paid services to be pre-enabled for the called user, such as: forwarding to voicemail, leaving a message, SMS service, etc., which results in high testing costs. Moreover, using real lines for outbound calls for testing, especially stress testing, requires dialing hundreds of thousands of calls. Testers do not have enough real mobile phones for testing, and using real lines for stress testing will cost a lot of phone bills. In addition, the number of FreeSwitch servers involved in the call center is scaled according to the business volume level. As the business volume increases or decreases, it is necessary to cope with stress testing scenarios with different numbers of FreeSwitch servers at any time. Therefore, the test cases for this service need to be implemented using an automated tool and integrated into the existing automated test scripts for system testing, regression testing, and stress testing. Moreover, there are generally many sets of test systems. For example, one set of test environment is used to test system functions, one set of test environment is used for UAT (User Acceptance Testing), and one set of system is used for stress testing, etc. There are many test environments, involving numerous servers and configuration files. To facilitate flexible management of the test environment configuration, the test configuration needs to be configured and managed in a web page manner and the system configuration can be verified through outbound calls.
[0076] Therefore, for the above reasons, the testers of the call center need to implement an automated test device to meet the following requirements: A device is needed to simulate the operator where the called party is located to send different early media to the FreeSwitch of the call center, so that the testing work of the call center can be decoupled from the operator and the testing of the call center is not affected by the operator; Simulated phone numbers are needed to solve the problem of insufficient outbound call numbers and save the outbound call costs for stress testing; The test-related configuration information needs to be flexibly set through a web page and the test environment needs to be verified; Test case files need to be automatically and flexibly generated for regression testing and stress testing; The program needs to automatically detect and output the test results without manual inspection.
[0077] To achieve the above object, as Figure 4 shown, this example is specifically implemented through the following steps:
[0078] Step S401: Configure the server domain name or IP port information.
[0079] Specifically, the domain name or IP port information of the Freeswitch server can be configured through the configuration interface in the server. In order to cope with the stress test scenarios of different numbers of FreeSwitch servers at any time, it is necessary to pre-configure the domain name or IP port information of the Freeswitch server in the configuration interface to flexibly adjust the number of FreeSwitch servers.
[0080] Step S402: Invoke the TTS service to generate early media recordings.
[0081] Among them, the TTS service is used to implement text-to-speech operations. For example, in the configuration interface, set the "TTS production entry" to call the tts server to produce early media recording files corresponding to different texts according to different texts. Or, local early media recording files can also be directly uploaded. In short, early media recording files can be generated in various ways, and the present invention does not limit this.
[0082] In addition, early media recording files can also be managed through the configuration interface. For example, early media can be selected and uploaded to one or more specified freeswitch servers, and early media recording files can also be played, downloaded, etc. Figure 5 Shows a schematic diagram of the interface for managing early media recording files. As Figure 5 shown, the status codes of the early media corresponding to each freeswitch server can be managed. For example, early media can be uploaded to the specified freeswitch server through the "Upload" entry, downloaded through the "Download" entry, or played through the "Play" entry.
[0083] Step S403: Add or modify the dial plan file.
[0084] Among them, the dial plan file is used to store each virtual number to be called. Figure 6 Shows a schematic diagram of the dial plan file. For example, different dial plan files can be configured for different freeswitch servers respectively. The dial plan file is used to display and modify the content of the dial plan file of each freeswtich server, and the dial plan file can be loaded into the freeswitch memory by clicking the "Load" button on the page, without executing the reloadxml command on the freeswtich console to load it into the memory.
[0085] Step S404: Reload the dial plan.
[0086] Step S405: Verify the system configuration.
[0087] Step S406: Determine whether the system configuration is normal.
[0088] Step S407: Generate a test case file with one click. Among them, Figure 7 A schematic diagram of the test case file is shown.
[0089] Step S408: Upload the test case file for outbound calls.
[0090] Originally, FreeSwitch obtained the early media stream by calling a real user's mobile phone. Now, FreeSwitch can obtain the early media stream by calling a virtual mobile phone number to obtain the specified early media file. The simulation process (principle) is as follows: First, Freeswitch configures the dial plan and configures the virtual mobile phone number. Second, when the call center makes an outbound call, FreeSwitch establishes an RTP session with the Mrcp sever. At the same time, FreeSwitch matches the called number with the extension in the dial plan (the extension can use regular expressions to represent a certain number or a batch of numbers), then parses the dial plan file, and executes the pre_answer command in the dial plan (equivalent to Freeswitch simulating the operator to send back the SIP 183 signaling to the caller), sleeps for a while, executes the playback command to play the recording file of the early media, and sleeps for a while after playing the recording file. Then, FreeSwitch executes the answer command to answer (simulating a real mobile phone answering the call, and then the operator sends back the SIP200 signaling to FreeSwitch, which means the process of the user answering the call). Finally, FreeSwitch executes the hangup command to hang up (simulating a real mobile phone hanging up the call, and then the operator sends back the SIP 200 signaling to FreeSwitch, which means the process of the user hanging up the call), and the call ends. Among them, the test environment can also be verified in the following way: On the page of the existing call center test tool, call the interface to make an outbound call to the corresponding phone number in the dial plan. If the corresponding recording broadcast can be heard, it proves that the test environment is correctly configured.
[0091] Step S409: Check the test results and output the test conclusion.
[0092] In this example, the test results can be automatically output. After the call ends, the tester only needs to click the "Check Test Results" button to automatically collect the logs of the call center server, thereby checking the status code returned by the Mrcp sever, comparing this status code with the standard status code in the test case file, and then outputting the test result file.
[0093] In summary, through the above example, test cases can be automatically and flexibly generated. The corresponding relationship between each number configured in the dialing plan and the early media recording is the test case. Therefore, after the dialing plan is successfully configured, only need to click the "Generate Case File" button, and the program reads the dialing plan file to automatically generate the test case file. Whether it is system testing or stress testing, the most crucial thing is the test case file. After the test case file is automatically generated, only need to upload this file to the dialing list or bind it to the predicted outbound call task to make an outbound call. The tester in the call center uses Freeswitch to simulate the early media stream returned by the operator where the called party is located, and then sends this early media stream to the Mrcp server. In this way, the testing work of the call center can be decoupled from the operator. This method uses simulated numbers instead of real numbers for stress testing, solving the problem that there are no thousands of real mobile phone numbers for outbound calls in testing. Moreover, using simulated numbers for outbound calls saves the call charges. This method visualizes the operations such as the configuration of the test environment, the production, playback and management of the early media recording file, the modification and loading of the dialing plan file, etc. There is no need to modify files, execute loading commands, etc. on the server, making the operation more intuitive and simple. Integrating the configuration and cases into the existing test tools is convenient for future testing and management. This method generates test cases and outputs test results with one key by the system, making the testing more automated, reducing the testing workload, and increasing the accuracy of the test conclusion. The entire testing process can form a complete closed loop: configure the test environment -> generate the recording file -> configure the dialing plan -> verify the test environment -> generate test cases with one key -> test execution -> automatically verify the test results.
[0094] It can be understood that the above-mentioned various method embodiments mentioned in the present disclosure can be combined with each other to form a combined embodiment without violating the principle logic. Due to space limitations, the present disclosure will not elaborate further. Those skilled in the art can understand that in the above method of the specific implementation manner, the specific execution order of each step should be determined according to its function and possible internal logic.
[0095] In addition, the present disclosure also provides a call testing device, an electronic device, and a computer-readable storage medium, all of which can be used to implement any one of the call testing methods provided by the present disclosure. The corresponding technical solutions and descriptions are referred to the corresponding records in the method part and will not be elaborated further.
[0096] Figure 8 Block diagram of a call testing device provided by an embodiment of the present disclosure.
[0097] Referring to Figure 8 , an embodiment of the present disclosure provides a call testing device, which includes:
[0098] An acquisition module 81, adapted to acquire the called number included in the call command, and in the case of determining that the called number is a virtual number, acquire a pre-configured early media identifier corresponding to the called number;
[0099] A playback module 82, adapted to play early media corresponding to the early media identifier, and acquire status indication information generated by the device under test based on the early media;
[0100] A comparison module 83, adapted to compare the status indication information with standard status information corresponding to the early media identifier, and determine a call test result according to the comparison result.
[0101] In an optional implementation manner, the acquisition module is specifically adapted to:
[0102] Match the called number with virtual numbers included in a preset test case file; if the match is successful, determine that the called number is a virtual number;
[0103] Acquire the early media identifier corresponding to the called number from the test case file; wherein, multiple virtual numbers and early media identifiers corresponding to each virtual number are stored in the test case file.
[0104] In an optional implementation manner, the playback module is specifically adapted to:
[0105] Execute a pre-answer command;
[0106] Play the early media corresponding to the early media identifier through a recording replay command;
[0107] Execute an answer command; execute a hang-up command.
[0108] In an optional implementation manner, the acquisition module is specifically adapted to:
[0109] Acquire the early media pre-stored in an early media library and corresponding to the early media identifier through a media acquisition interface;
[0110] Wherein, the early media identifier is used to indicate the type of early media, and various types of early media are pre-stored in the early media library.
[0111] In an optional implementation manner, the playback module is specifically adapted to:
[0112] Send the early media to the device under test, obtain the log information of the device under test, and extract the status indication information from the log information; wherein, the device under test includes: a media resource control protocol server included in a call center.
[0113] In an alternative implementation, the comparison module is specifically adapted to:
[0114] Obtain the standard status information corresponding to the early media identifier from the test case file, and compare the status indication information with the obtained standard status information;
[0115] If the comparison result is the same, determine that the call test result is normal;
[0116] If the comparison result is different, determine that the call test result is abnormal.
[0117] In an alternative implementation, the device is a softswitch device, and in the case where the number of softswitch devices is multiple, further configure the device identifier and the test case file of each softswitch device through a configuration server; wherein, the device identifier of each softswitch device includes: a domain name address and / or an IP port.
[0118] In an alternative implementation, after configuring the device identifier and the test case file of each softswitch device through the configuration server, it further includes: configuring the type and quantity of the early media pre-stored in the early media library of each softswitch device through the early media configuration entry in the configuration server; wherein, the early media configuration entry includes: a media upload entry for uploading early media and a media deletion entry for deleting early media.
[0119] Figure 9 It is a block diagram of an electronic device provided by an embodiment of the present disclosure.
[0120] Refer to Figure 9 , an embodiment of the present disclosure provides an electronic device, which includes: at least one processor 501; at least one memory 502, and one or more I / O interfaces 503 connected between the processor 501 and the memory 502; wherein, the memory 502 stores one or more computer programs executable by at least one processor 501, and the one or more computer programs are executed by at least one processor 501 to perform the above call test method.
[0121] Embodiments of the present disclosure also provide a computer-readable storage medium, on which a computer program is stored, wherein the computer program, when executed by a processor / processing core, implements the above-mentioned call test method. The computer-readable storage medium may be a volatile or non-volatile computer-readable storage medium.
[0122] Embodiments of the present disclosure also provide a computer program product, including computer-readable code, or a non-volatile computer-readable storage medium carrying the computer-readable code. When the computer-readable code runs in a processor of an electronic device, the processor in the electronic device executes the above-mentioned call test method.
[0123] Those of ordinary skill in the art can understand that all or some of the steps in the methods disclosed above, and the functional modules / units in the systems and devices, can be implemented as software, firmware, hardware, and their appropriate combinations. In the hardware implementation, the division of the functional modules / units mentioned above does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be executed by several physical components in cooperation. Some or all of the physical components may be implemented as software executed by a processor, such as a central processing unit, a digital signal processor, or a microprocessor, or may be implemented as hardware, or may be implemented as an integrated circuit, such as an application-specific integrated circuit. Such software may be distributed on a computer-readable storage medium, which may include a computer storage medium (or non-transitory medium) and a communication medium (or transitory medium).
[0124] As is well known to those of ordinary skill in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information, such as computer-readable program instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), static random access memory (SRAM), flash memory or other memory technologies, portable compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical disc storage, magnetic cassette, tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by a computer. In addition, as is well known to those of ordinary skill in the art, a communication medium typically contains computer-readable program instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transmission mechanism, and may include any information delivery medium.
[0125] The computer-readable program instructions described herein can be downloaded to various computing / processing devices from a computer-readable storage medium or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical fiber transmission, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in each computing / processing device.
[0126] The computer program instructions for performing the operations of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state-setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, etc., and conventional procedural programming languages such as the "C" language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, executed as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider). In some embodiments, by using the status information of the computer-readable program instructions to customize an electronic circuit, such as a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA), the electronic circuit can execute the computer-readable program instructions to implement various aspects of the present disclosure.
[0127] The computer program product described herein may be implemented specifically by hardware, software, or a combination thereof. In an alternative embodiment, the computer program product is specifically embodied as a computer storage medium. In another alternative embodiment, the computer program product is specifically embodied as a software product, such as a Software Development Kit (SDK), etc.
[0128] Aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of methods, apparatuses (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each block of the flowcharts and / or block diagrams, and the combinations of blocks in the flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0129] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, when executed by the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that causes a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer-readable medium storing the instructions comprises a manufacture including instructions which implement various aspects of the functions / acts specified in one or more boxes of the flowchart and / or block diagram.
[0130] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other devices to produce a computer-implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other devices implement the functions / acts specified in one or more boxes of the flowchart and / or block diagram.
[0131] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a segment of code, or a portion of an instruction, and the module, segment of code, or portion of an instruction may include one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions noted in the boxes may occur out of the order noted in the figures. For example, two consecutive blocks may in fact be executed substantially in parallel, or they may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented by special-purpose hardware-based systems that perform the specified functions or acts, or by combinations of special-purpose hardware and computer instructions.
[0132] Example embodiments have been disclosed herein, and although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation. In some instances, it will be apparent to those skilled in the art that, unless otherwise expressly stated, the features, characteristics, and / or elements described in connection with a particular embodiment may be used singly or in combination with those described in connection with other embodiments. Accordingly, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the scope of the present disclosure as set forth in the appended claims.
Claims
1. A call test method, characterized in that, Including: Obtain the called number included in the call command. When it is determined that the called number is a virtual number, obtain the early media identifier pre-configured corresponding to the called number; Play the early media corresponding to the early media identifier, and obtain the status indication information generated by the device under test based on the early media; Compare the status indication information with the standard status information corresponding to the early media identifier, and determine the call test result according to the comparison result.
2. The method according to claim 1, characterized in that, The obtaining the early media identifier pre-configured corresponding to the called number when it is determined that the called number is a virtual number includes: Match the called number with the virtual numbers included in the preset test case file; if the match is successful, determine that the called number is a virtual number; Obtain the early media identifier corresponding to the called number from the test case file; wherein, multiple virtual numbers and the early media identifier corresponding to each virtual number are stored in the test case file.
3. The method according to claim 1, characterized in that, The playing the early media corresponding to the early media identifier includes: Execute a pre-answer command; Play the early media corresponding to the early media identifier through a recording replay command; Execute an answer command; Execute a hang-up command.
4. The method according to claim 1, characterized in that, The obtaining the status indication information generated by the device under test based on the early media includes: Send the early media to the device under test, obtain the log information of the device under test, and extract the status indication information from the log information; Wherein, the device under test includes: a media resource control protocol server included in the call center, and the media resource control protocol server is used to obtain the early media and perform voice-to-text processing on the early media to generate the status indication information according to the processing result.
5. The method according to claim 1, characterized in that, The comparing the status indication information with the standard status information corresponding to the early media identifier and determining the call test result according to the comparison result includes: Obtain the standard status information corresponding to the early media identifier from the preset test case file, and compare the status indication information with the obtained standard status information; If the comparison result is the same, determine that the call test result is normal; If the comparison result is different, determine that the call test result is abnormal.
6. The method according to any one of claims 1-5, characterized in that, The method is applied to a softswitch device, and when the number of softswitch devices is multiple, before the method is executed, it further includes: Configure the device identifier and the test case file of each softswitch device through a configuration server; wherein, the device identifier of each softswitch device includes: a domain name address and / or an IP port.
7. The method according to claim 6, characterized in that, After configuring the device identifier and the test case file of each softswitch device through the configuration server, it further includes: Configure the type and quantity of the early media pre-stored in the early media library of each softswitch device through the early media configuration entry in the configuration server; wherein, the early media configuration entry includes: a media upload entry for uploading early media and a media deletion entry for deleting early media.
8. A call test device, characterized in that, Including: An acquisition module, adapted to acquire the called number included in a call command, and in the case of determining that the called number is a virtual number, acquire a pre-configured early media identifier corresponding to the called number; A playback module, adapted to play early media corresponding to the early media identifier, and acquire status indication information generated by the device under test based on the early media; A comparison module, adapted to compare the status indication information with standard status information corresponding to the early media identifier, and determine a call test result according to the comparison result.
9. An electronic device, characterized in that, Comprising: At least one processor; And A memory communicatively connected to the at least one processor; wherein, The memory stores one or more computer programs executable by the at least one processor, and the one or more computer programs are executed by the at least one processor so that the at least one processor can execute the method according to any one of claims 1-7.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that, The computer program, when executed by a processor, implements the method according to any one of claims 1-7.
Citation Information
Patent Citations
System and method for testing bearer independent call control (BICC) service under access network-free condition
CN101848481A
Playback method and device for dialing VOLTE user by IMS fixed telephone user
CN111212192A