Call bill generation method and call bill generation device

By using call identifiers as primary key cache and supplementing call order data in the call system, the inaccuracy problem of call event messages caused by disordered or lost orders is solved, and the accuracy of order data and billing accuracy during the call process is achieved.

CN119254887APending Publication Date: 2025-01-03JD DIGITS HAIYI INFORMATION TECHNOLOGY CO LTD

Patent Information

Application Number
CN202411412111.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-10
Publication Date
2025-01-03

AI Technical Summary

Technical Problem

During the call process, due to factors such as network transmission, signaling transmission and media transmission, the call event messages may be inconsistent or lost, resulting in inaccurate call sheet data and affecting the billing accuracy.

Method used

By obtaining the pending call event message, using the call identifier as the primary key, the relevant word order data is cached, and supplementing it in the absence of data to generate a complete word order, thereby improving the accuracy of the word order data.

Benefits of technology

It realizes that even if the sequence of event messages is incorrect or lost during the call process, the call order can be accurately generated, which improves the accuracy and real-time billing, and ensures timely and accurate calculation of call fees and business control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119254887A_ABST
    Figure CN119254887A_ABST
Patent Text Reader

Abstract

The invention provides a call ticket generation method and a call ticket generation device, and relates to the technical field of data processing and communication. The call ticket generation method comprises the following steps: acquiring a call event message to be processed, the call event message comprising a call identifier, a call event type and call event time, caching call ticket data corresponding to the call identifier by taking the call identifier as a main key according to the call event message, in the embodiment of the invention, the missing ticket data corresponding to the call identifier is supplemented according to the cached ticket data which corresponds to the call identifier and is related to the missing ticket data, and the ticket corresponding to the call identifier is generated according to the supplemented ticket data corresponding to the call identifier, so that the accuracy of the ticket data is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of data processing and communication technology, and in particular to a method and device for generating a call record. Background Art

[0002] In call scenarios such as customer return visits and marketing activities, customer service personnel use the online seats of call center equipment to initiate calls.

[0003] Affected by various factors such as network transmission, signaling transmission, and media transmission, various event messages during the call process may be out of order or lost, resulting in inaccurate call record data and affecting billing accuracy. Summary of the invention

[0004] In an embodiment of the present disclosure, a call event message to be processed is obtained, wherein the call event message includes a call identifier, a call event type, and a call event time. According to the call event message, call bill data corresponding to the call identifier is cached with the call identifier as the primary key. The missing call bill data corresponding to the call identifier is supplemented based on the cached call bill data related to the missing call bill data corresponding to the call identifier. According to the supplemented call bill data corresponding to the call identifier, a call bill corresponding to the call identifier is generated, thereby improving the accuracy of the call bill data.

[0005] Some embodiments of the present disclosure provide a method for generating a call record, including:

[0006] Acquire a call event message to be processed, wherein the call event message includes a call identifier, a call event type, and a call event time;

[0007] According to the call event message, using the call identifier as the primary key, cache the call record data corresponding to the call identifier;

[0008] Supplementing the missing call record data corresponding to the call identifier according to the cached call record data related to the missing call record data corresponding to the call identifier;

[0009] Generate a call record corresponding to the call identifier based on the supplementary call record data corresponding to the call identifier.

[0010] In some embodiments, supplementing the missing bill data corresponding to the call identifier includes:

[0011] In response to obtaining a call end event message, if the call record data other than the call duration corresponding to the call identifier of the call end event message is missing, the call end event message is put back into the call event message queue to be processed;

[0012] Each call event message in the call event message queue to be processed is processed, and according to the call event message having the call identifier, the call list data corresponding to the call identifier is supplemented.

[0013] In some embodiments, supplementing the missing call record data corresponding to the call identifier also includes: when the re-play operation reaches a preset number of times or a preset duration, if the cached call record data corresponding to the call identifier is missing the call start time, the call duration corresponding to the call identifier is supplemented according to the call end time and the first media time in the cached call record data corresponding to the call identifier.

[0014] In some embodiments, supplementing the missing call record data corresponding to the call identifier includes: in response to obtaining a call end event message, when the call record data corresponding to the call identifier is complete except for the call duration, supplementing the call duration corresponding to the call identifier according to the call end time and call start time in the cached call record data corresponding to the call identifier.

[0015] In some embodiments, supplementing the missing call log data corresponding to the call identifier includes: when the call end event message corresponding to the call identifier is not obtained within a preset time period, supplementing the call duration corresponding to the call identifier based on the last media time and the first media time in the cached call log data corresponding to the call identifier, or based on the last media time and the call start time in the cached call log data corresponding to the call identifier.

[0016] In some embodiments, supplementing the missing call record data corresponding to the call identifier includes: if the call end event message corresponding to the call identifier is not obtained within the preset time length, if the cached call record data corresponding to the call identifier is missing the last media time and the first media time, the call duration corresponding to the call identifier is set to 0.

[0017] In some embodiments, supplementing the missing call record data corresponding to the call identifier also includes: setting the call end status to pending.

[0018] In some embodiments, according to the call event message, with the call identifier as the primary key, caching the call record data corresponding to the call identifier includes one or more of the following:

[0019] Create an event message based on the channel, use the call ID as the primary key, and cache the incoming call time corresponding to the call ID;

[0020] According to the channel bridging event message, the call identifier is used as the primary key to cache the transfer time corresponding to the call identifier;

[0021] According to the channel media transmission event message at each time, the call identifier is used as the primary key to cache the ringing time, the first media time and the last media time corresponding to the call identifier;

[0022] According to the channel answer event message, the call start time corresponding to the call identifier is cached with the call identifier as the primary key;

[0023] According to the channel hang-up event message, the call end time corresponding to the call identifier is cached with the call identifier as the primary key; or

[0024] According to the channel hang-up completion event message, at least one of the call end time, hang-up reason or hang-up direction corresponding to the call identifier is cached with the call identifier as the primary key.

[0025] In some embodiments, the call record generation method is executed in a distributed manner.

[0026] In some embodiments, the call bill generation method further includes: performing service control on the call bill, wherein the service control includes billing or closing the call line.

[0027] Some embodiments of the present disclosure provide a call record generation device, comprising: a memory; and a processor coupled to the memory, wherein the processor is configured to execute a call record generation method based on instructions stored in the memory.

[0028] Some embodiments of the present disclosure provide a device for generating a call record, including:

[0029] An event acquisition unit, configured to acquire a call event message to be processed, wherein the call event message includes a call identifier, a call event type, and a call event time;

[0030] A cache unit is configured to cache the call record data corresponding to the call identifier according to the call event message and with the call identifier as the primary key;

[0031] The call record generation unit is configured to supplement the missing call record data corresponding to the call identifier based on the cached call record data related to the missing call record data corresponding to the call identifier when the call record data corresponding to the call identifier is incomplete; and generate a call record corresponding to the call identifier based on the supplemented call record data corresponding to the call identifier.

[0032] Some embodiments of the present disclosure provide a computer-readable storage medium having a computer program stored thereon, which implements the steps of a call record generation method when the computer program is executed by a processor.

[0033] Some embodiments of the present disclosure provide a computer program product, including a computer program, which implements the steps of a call record generation method when executed by a processor. BRIEF DESCRIPTION OF THE DRAWINGS

[0034] The following is a brief introduction to the drawings required for use in the embodiments or related technical descriptions. The present disclosure can be more clearly understood according to the following detailed description with reference to the drawings.

[0035] Obviously, the drawings described below are only some embodiments of the present disclosure, and a person skilled in the art can obtain other drawings based on these drawings without creative work.

[0036] Figure 1 A schematic diagram showing a call system according to some embodiments of the present disclosure.

[0037] Figure 2 A schematic diagram showing a call record generation device according to some embodiments of the present disclosure.

[0038] Figure 3 A schematic diagram showing a method for generating a call slip according to some embodiments of the present disclosure.

[0039] Figure 4 A schematic diagram showing the various parts of a call record generation device in some embodiments of the present disclosure executing a call record generation method.

[0040] Figure 5 A schematic diagram showing the timeline of call event message generation.

[0041] Figure 6 Schematic diagrams showing devices for generating call slips according to other embodiments of the present disclosure.

[0042] Figure 7 A schematic diagram showing deployment of a call system and a call record generation device thereof in a cloud host manner in some embodiments of the present disclosure. DETAILED DESCRIPTION

[0043] It should be noted that the relative arrangement of components and steps, the numerical expressions and numerical values ​​set forth in these embodiments do not limit the scope of the present disclosure unless specifically stated otherwise.

[0044] Those skilled in the art can understand that the terms "first" and "second" in the embodiments of the present disclosure are only used to distinguish different steps, devices or modules, etc., and neither represent any specific technical meaning nor indicate the necessary logical order between them.

[0045] It should also be understood that in the embodiments of the present disclosure, “plurality” may refer to two or more than two, and “at least one” may refer to one, two, or more than two.

[0046] It should also be understood that any component, data or structure mentioned in the embodiments of the present disclosure can generally be understood as one or more, unless explicitly limited or otherwise indicated in the context.

[0047] In addition, the term "and / or" in the present disclosure is only a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in the present disclosure generally indicates that the associated objects before and after are in an "or" relationship.

[0048] It should also be understood that the description of the various embodiments in the present disclosure focuses on the differences between the various embodiments, and the same or similar aspects thereof can be referenced to each other, and for the sake of brevity, they will not be described one by one.

[0049] At the same time, it should be understood that for the convenience of description, the sizes of the various parts shown in the drawings are not drawn according to the actual proportional relationship.

[0050] The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the present disclosure, its application, or uses.

[0051] Technologies, methods, and equipment known to ordinary technicians in the relevant art may not be discussed in detail, but where appropriate, the technologies, methods, and equipment should be considered as part of the specification.

[0052] It should be noted that like reference numerals and letters refer to similar items in the following figures, and therefore, once an item is defined in one figure, it need not be further discussed in subsequent figures.

[0053] In addition, in order to avoid obscuring the present disclosure due to unnecessary details, only the processing steps and / or device structures closely related to at least the scheme according to the present disclosure are shown in the drawings, and other details that are not closely related to the present disclosure are omitted. It should also be noted that similar reference numerals and letters in the drawings indicate similar items, and therefore once an item is defined in one drawing, it does not need to be discussed again for subsequent drawings.

[0054] Figure 1 A schematic diagram showing a call system according to some embodiments of the present disclosure.

[0055] like Figure 1As shown, the call system 100 of this embodiment includes: call center equipment 110, soft switch (FreeSwitch) system 120, call bill generating device 130, operator line 140, called phone (such as called mobile phone) 150, etc. Among them, the soft switch system 120 and the call bill generating device 130 can be set on the "voice outbound call platform" for example. The call process includes, for example: a user (such as a customer service staff) uses the online seat of the "call center equipment 110" to initiate a call (such as a voice call), and the outward call line is connected to the "voice outbound call platform" via a gateway. After the "voice outbound call platform" receives the seat call request, it selects the downstream operator line 140 for line routing, wherein the "soft switch system 120" controls the line routing, transfers the call request to a certain call line of a certain operator, and then transfers it to the called phone 150 through, for example, PSTN (Public Switched Telephone Network, public switched telephone network), the phone rings, and the call is connected. During the call process, the call record generation device 130 of the "voice outbound call platform" monitors call event messages, and all call event messages are collected, analyzed, and processed to finally generate a call record. The collection, analysis, and processing of call event messages can be distributed to improve processing efficiency.

[0056] Figure 2 A schematic diagram showing a call record generation device according to some embodiments of the present disclosure.

[0057] like Figure 2 As shown, the call record generation device 130 of this embodiment includes: an event acquisition unit 131, a cache unit 132, a call record generation unit 133, and according to needs, it can also include: a message queue middleware 134, a call record storage unit 135, a database 136, etc. One or more.

[0058] The event acquisition unit 131 acquires various call event messages by monitoring the soft switch system 120. The various call event messages include, for example, channel creation event messages, channel bridging event messages, channel media transmission event messages, channel answering event messages, channel on-hook event messages, channel on-hook completion event messages, etc.

[0059] The message body of the call event message includes, for example: user entry gateway identifier, user entry gateway name, user line identifier, user line name, operator line identifier, operator line name, call event name (which can characterize the call event type), call event time, call identifier, caller information, called party information, etc.

[0060] The cache unit 132 may be a cache storage device, which caches the call data corresponding to the call ID according to the call event message and the Hash structure, with the call ID as the primary key. The call data items to be cached may be preset, and it may also be set which items are required and which items are optional, which may be specifically set according to business needs. The mapping relationship between the call event and the call data is shown in Table 1, and the call data corresponding to the call ID cached by the hash structure is shown in Table 2.

[0061] Table 1 Mapping relationship between call events and call record data

[0062]

[0063] Among them, the ringing tone and voice and other media are all transmitted using the channel media transmission event. Therefore, the ringing time, the first media time, and the last media time can be determined according to each channel media transmission event.

[0064] Among them, the channel hang-up event and the channel hang-up completion event can both represent call end events, and the call end time of the two is the same. The channel hang-up completion event contains more hang-up related information than the channel hang-up event, such as the hang-up reason, the hang-up direction, etc. Considering the uncertainty of the communication environment, the channel hang-up event or the channel hang-up completion event may be lost. In this embodiment, any one of the channel hang-up event and the channel hang-up completion event is used to represent the call end event.

[0065] Among them, the reasons for hanging up include, for example, normal hanging up, abnormal hanging up, etc. The hanging up directions include, for example, calling hanging up, called hanging up.

[0066] Referring to Table 1, according to the channel creation event message, the call identifier is used as the primary key to cache the incoming call time corresponding to the call identifier; according to the channel bridging event message, the call identifier is used as the primary key to cache the transfer time corresponding to the call identifier; according to the channel media transmission event message of each time, the call identifier is used as the primary key to cache the ringing time, the first media time and the last media time corresponding to the call identifier; according to the channel answering event message, the call identifier is used as the primary key to cache the call start time corresponding to the call identifier; according to the channel hang-up event message, the call identifier is used as the primary key to cache the call end time corresponding to the call identifier; or according to the channel hang-up completion event message, the call identifier is used as the primary key to cache at least one of the call end time, hang-up reason or hang-up direction corresponding to the call identifier. Thus, based on various call event messages, the corresponding call list data is cached.

[0067] Table 2 Call record data corresponding to the call ID cached in the hash structure

[0068]

[0069] The call bill generation unit 133 generates a call bill corresponding to the call identifier based on the call bill data corresponding to the same call identifier. If the call bill data corresponding to the same call identifier is incomplete, the missing call bill data corresponding to the call identifier can be supplemented based on the cached call bill data related to the missing call bill data corresponding to the call identifier, that is, the call bill data can be corrected; and a call bill corresponding to the call identifier can be generated based on the supplemented call bill data corresponding to the call identifier. The call bill generation unit 133 can obtain the call event message to be processed from the message queue middleware 134, and match the call bill data corresponding to the call identifier of the call event message to be processed from the cache unit 132 to synthesize the call bill.

[0070] The message body of the call record includes, for example: user entry gateway identifier, user entry gateway name, user line identifier, user line name, operator line identifier, operator line name, call identifier, caller information, called information, incoming call time, transfer time, ringing time, answering time, hang-up time, hang-up reason, call duration, etc. This is just an example. As mentioned above, the data items of the synthetic call record can be preset, and it can also be set which are required items and which are optional items, which can be set specifically according to business needs.

[0071] The message queue middleware 134 stores various call event messages, for example, various call event messages to be processed are stored in the form of queues; it can also temporarily store the call records generated by the call record generation unit 133 that have not yet been stored. Affected by network transmission, the call event messages stored in the message queue middleware 134 are out of order, that is, the call event messages of different users may be mixed, and the call event messages of the same user may be out of order.

[0072] The call record storage unit 135 stores the generated call record in the database 136 from the message queue middleware 134, and the database 136 performs persistent storage on the call record.

[0073] Figure 3 A schematic diagram of a method for generating a call slip according to some embodiments of the present disclosure is shown. The method for generating a call slip according to this embodiment may be executed by, for example, a call slip generating device 130 .

[0074] like Figure 3 As shown, the call record generation method of this embodiment includes the following steps 310-340.

[0075] Step 310: Obtain a call event message to be processed. The call event message includes, for example, a call identifier, a call event type, a call event time, etc. For details, please refer to the description of the message body of the call event message above.

[0076] Step 320: based on the call event message, using the call identifier as the primary key, cache the call record data corresponding to the call identifier.

[0077] Step 330: supplement the missing call record data corresponding to the call identifier according to the cached call record data related to the missing call record data corresponding to the call identifier.

[0078] Some examples of supplementing missing call record data corresponding to a call identifier are described below.

[0079] (1) In response to obtaining a call end event message, if the call record data corresponding to the call identifier of the call end event message except for the call duration is missing, it indicates that an abnormal situation occurs that the call end event message arrives before other call event messages. The call end event message is put back into the call event message queue to be processed, so that other call event messages that originally arrived later have the opportunity to be processed; each call event message in the call event message queue to be processed is processed, and the call record data corresponding to the call identifier is supplemented according to the call event message with the call identifier.

[0080] Therefore, even if the arrival times of various call event messages are disordered, the call record data can still be accurately obtained.

[0081] (2) When the re-put operation (i.e., the call end event message is put back into the queue of pending call event messages) reaches a preset number of times or a preset duration, if the cached bill data corresponding to the call identifier still lacks the call start time, it indicates that the channel answer event message may be lost. The call duration corresponding to the call identifier is supplemented according to the call end time and the first media time in the cached bill data corresponding to the call identifier. At this time, the difference between the call end time and the first media time is taken as the call duration.

[0082] Therefore, when the channel answer event message is lost, the first media time closest to the channel answer event time is used instead of the call start time to approximately estimate the call duration, and the estimated call duration is very close to the actual call duration.

[0083] (3) In response to obtaining a call end event message, if the call record data corresponding to the call identifier except the call duration is complete, the call duration corresponding to the call identifier is supplemented according to the call end time and call start time in the cached call record data corresponding to the call identifier. At this time, the difference between the call end time and the call start time is used as the call duration.

[0084] Therefore, if the call record data is complete when the call end event message is first obtained, or if the call record data is complete when the call end event message is obtained again after retrying (1), the call duration can be accurately calculated based on the call end / start time.

[0085] (4) If the call end event message corresponding to the call identifier is not obtained within the preset time, it means that the call end event message may be lost. The call duration corresponding to the call identifier is supplemented according to the last media time and the call start time in the cached bill data corresponding to the call identifier. At this time, the difference between the last media time and the call start time is used as the call duration. The call end status is set to pending (or unknown).

[0086] Therefore, when the call end event message is lost, the call end time is replaced by the last media time closest to the call end event time to approximately estimate the call duration, and the estimated call duration is very close to the actual call duration.

[0087] (5) If the call end event message corresponding to the call identifier is not obtained within the preset time, it means that the call end event message may be lost. The call duration corresponding to the call identifier is supplemented according to the last media time and the first media time in the cached call record data corresponding to the call identifier. At this time, the difference between the last media time and the first media time is used as the call duration. The call end status is set to pending (or unknown).

[0088] Therefore, when both the call end event message and the channel answer event message are lost, the call end time is replaced by the last media time closest to the call end event time, and the call start time is replaced by the first media time closest to the channel answer event time to approximately estimate the call duration. The estimated call duration is very close to the actual call duration.

[0089] (6) If the call end event message corresponding to the call identifier is not obtained within the preset time, if the cached bill data corresponding to the call identifier is missing the last media time and the first media time, it means that neither the call end event nor the media transmission event is detected, and the call duration corresponding to the call identifier is set to 0. The call end status is set to pending (or unknown).

[0090] Therefore, when the call end event is lost and the media transmission information is abnormal, the call duration can still be estimated relatively accurately.

[0091] Step 340: Generate a call record corresponding to the call identifier according to the supplementary call record data corresponding to the call identifier.

[0092] This embodiment can generate a call bill more accurately based on the supplementary call bill data. In addition, most calls can generate a call bill when the call ends, which is more real-time. For a small number of calls, a call bill can be synthesized within a limited delay after retry, or a call bill can be forcibly synthesized after a backup process.

[0093] It should be noted that the call sheet generation method can be executed in a distributed manner, especially when the user makes a large number of calls, the efficiency can be improved by performing distributed call sheet generation on these calls. In the distributed call sheet generation scenario, although the arrival time of the call event message is more chaotic, the processing of caching the call sheet data corresponding to the call identifier according to the call event message in step 320 with the call identifier as the primary key can well cope with the situation where the arrival time of the call event message is out of order, and the call sheet can still be accurately generated.

[0094] In addition, based on the generated call bill, the call bill is subjected to service control, and the service control includes, for example, billing or closing the call line. Since the accuracy and real-time performance of the generated call bill are good, service control can be performed accurately and timely. For example, the call charges can be determined accurately and timely, and when the charges exceed expectations, the call line can be closed accurately and timely to avoid huge excess charges.

[0095] Figure 4 A schematic diagram showing the various parts of a call record generation device in some embodiments of the present disclosure executing a call record generation method.

[0096] like Figure 4 As shown, the call record generation method executed by various parts of the call record generation device includes the following steps.

[0097] Step 410: The call center device 110 and the soft switch system 120 implement SIP (Session Initialization Protocol) docking through IP (Internet Protocol) addresses and ports. The customer agent initiates a SIP call, which is further transferred to the entry gateway of the soft switch system through the IP network, such as the OpenSIPS (OpenSIP Server) gateway.

[0098] Step 420: The soft switch system 120 receives the SIP call signaling from the customer seat, and implements load balancing of the SIP call signaling through the OpenSIPS gateway, and loads the load to a certain soft switch, such as FreeSwitch. The soft switch implements the operator's routing selection, and further sends the SIP signaling to the SIP server of the downstream operator, and further calls the called phone, such as the called landline or mobile phone, through the IP network and PSTN network.

[0099] Step 430: The event acquisition unit 131 implements monitoring of call event messages. From the beginning to the end of a telephone call, multiple call event messages are generated, and designated key call event messages are collected for the generation of call records. For example, the event messages monitored and collected by the event acquisition unit 131 are matched by event regular expressions, and unnecessary event messages are filtered out, and key event messages are retained. Through the "event entry docking service", the retained event messages used to generate call records are written to the message queue middleware 134. In addition, the event acquisition unit 131 can be deployed in a distributed cluster to achieve high-concurrency collection and writing capabilities. The event messages written to the message queue middleware 134 are in an unordered state and need to be further processed by the subsequent cache unit 132. Among them, the key call event messages that need to be obtained to generate call records and the mapping relationship between the call event messages and the call record data are shown in Table 1 above.

[0100] Step 440: Message queue middleware 134: On the one hand, in the call event message queue to be processed, various call event messages to be processed transmitted by the event acquisition unit 131 are stored; on the other hand, the call records generated by the call record generation unit 133 that have not yet been stored can also be temporarily stored, and these call records are put into the call record storage queue.

[0101] For example, the message body of the call event message includes: user entry gateway ID, user entry gateway name, user line ID, user line name, operator line ID, operator line name, call event message name (which can characterize the call event type), call event message time, call ID, caller, called party and other information.

[0102] For example, the message body of the call record includes: user entry gateway id, user entry gateway name, user line id, user line name, operator line id, operator line name, call id, calling, called, incoming call time, transfer time, ringing time, answering time, hang-up time, hang-up reason, and call duration.

[0103] Step 450: Each cache unit 132 (i.e., cache storage device) communicates using a shared data mode, and based on a call event message generated by a call, caches and stores the call data corresponding to the call ID according to a hash structure, with the call ID of the call as the primary key, for generating a call record. The call record data stored in the cache unit 132 is shown in Table 2 above.

[0104] Step 460: The call bill generation unit 133 is used to synthesize the call bill. The call bill generation unit 133 can be deployed in a distributed cluster to improve parallel processing performance and achieve rapid call bill synthesis. The process of the call bill generation unit 133 generating the call bill is described in detail below.

[0105] 1) The call record generation unit 133 pulls the call event message from the call event message queue to be processed of the message queue middleware 134 and performs parallel processing.

[0106] 2) After the call event message is pulled, first determine whether the call event type of the call event message is a "call end event" message, and use this message as a basis for determining whether it is time to synthesize a call record.

[0107] Among them, when the call ends, the network transmits SIP hang-up signaling, which is transmitted to FreeSwitch. FreeSwitch monitors and generates a channel hang-up (CHANNEL_HANGUP) event and a channel hang-up completion (CHANNEL_HANGUP_COMPLETE) event. Either of the two events can represent a "call end event."

[0108] 3) If it is not a "call end event" message, then the call record corresponding to the current call event message is cached in the cache unit (i.e., cache storage device) 132 for future use in synthesizing the call record. It is stored in a HASH structure, with the key being the call id, the field name being the call event name, and the value being the time when the call event occurred, as shown in Table 2 above.

[0109] 4) If it is a "call end event" message, then take out all the call record data with the key value of the current call id from the HASH structure of the cache unit (i.e., cache storage device) 132, and determine whether other necessary synthetic call record data are all ready, that is, determine whether other necessary call events are all ready.

[0110] 5) If everything is ready, the call duration is accurately estimated, using the formula: HangupTime-AnswerTime=this call duration. Further complete other call sheet field information, synthesize the call sheet successfully, and put the call sheet into the "call sheet storage queue" in the message queue middleware 134.

[0111] 6) If not all are ready, then put the "call end event" message back into the pending call event message queue in the message queue middleware 134 for retry. If after multiple retries, the necessary call event message for the synthesized call record is still not matched, that is, the necessary synthesized call record data is still not all ready, then the call duration is approximately estimated, and the estimation formula is: HangupTime-FirstMediaTime=this call duration.

[0112] 7) If the "call end event" is never collected during the call, for example, the "call end event" has not been collected for more than 6 hours, there may be network anomalies and other reasons, and the "call end event" is lost, and the call record needs to be forcibly synthesized. Take out the Hash structure data message from the cache unit (i.e., cache storage device) 132. If the FirstMediaTime and LastMediaTime times exist, then make an approximate estimate of the call duration. The estimation formula is: LastMediaTime-FirstMediaTime=this call duration, and the call end status is set to pending or unknown. If there is no media time, the call duration is recorded as 0, and the call end status is set to pending or unknown, and the call record is forcibly synthesized.

[0113] The timeline of call event message generation is as follows: Figure 5 As shown, they are the incoming call time, transfer time, ringing time, call start time, and call end time. In a normal call, call events are generated in sequence, and there is a long time difference between the call generation and the call end. In most cases, after receiving the "call end event" message, all other necessary call event message data can be matched, and the call record can be successfully synthesized. In a few cases, a retry is required to synthesize the call record, or a mandatory call record synthesis is required.

[0114] Step 470: The call record storage unit 135 can be deployed in a distributed cluster, pull the call record data from the "call record storage queue" of the message queue middleware 134, perform parallel processing, and store the call record in parallel in the database 136 for persistent storage to improve the call record storage capability. When the call record is successfully stored, the offset is submitted, and the call event data information of this call in the message queue middleware 134 is cleared. In order to prevent multiple duplicate call records from being generated for a certain call, the call id is verified in the call record storage link to achieve idempotent storage and ensure that the call record stored in the database 136 is unique.

[0115] This embodiment can generate a call bill more accurately based on the supplementary call bill data. In addition, most calls can generate a call bill when the call ends, which is more real-time. For a small number of calls, a call bill can be synthesized within a limited delay after retry, or a call bill can be forcibly synthesized after a backup process.

[0116] Figure 6 Schematic diagrams showing devices for generating call slips according to other embodiments of the present disclosure.

[0117] like Figure 6As shown, the call slip generating device 600 of this embodiment includes: a memory 610 and a processor 620 coupled to the memory 610 , and the processor 620 is configured to execute the call slip generating method in each embodiment based on the instructions stored in the memory 610 .

[0118] The call record generating device 600 may further include an input / output interface 630 , a network interface 640 , a storage interface 650 , etc. These interfaces 630 , 640 , 650 , the memory 610 and the processor 620 may be connected via a bus 660 , for example.

[0119] The memory 610 may include, for example, a system memory, a fixed non-volatile storage medium, etc. The system memory may store, for example, an operating system, an application program, a boot loader, and other programs.

[0120] The processor 620 may be implemented by a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistors and other discrete hardware components.

[0121] Among them, the input and output interface 630 provides a connection interface for input and output devices such as a display, a mouse, a keyboard, and a touch screen. The network interface 640 provides a connection interface for various networked devices. The storage interface 650 provides a connection interface for external storage devices such as SD cards and USB flash drives. The bus 660 can use any bus structure among a variety of bus structures. For example, the bus structure includes but is not limited to the Industry Standard Architecture (ISA) bus, the Micro Channel Architecture (MCA) bus, and the Peripheral Component Interconnect (PCI) bus.

[0122] Figure 7 A schematic diagram showing deployment of a call system and a call record generation device thereof in a cloud host manner in some embodiments of the present disclosure.

[0123] like Figure 7As shown, the inlet gateway and soft switch system 120 of the call system 100 are deployed in a cloud host mode. The event acquisition unit 131, the call record generation unit 133, and the call record storage unit 135 of the call record generation device 130 are all deployed in a cloud host mode, and the cache unit 132, the message queue middleware 134, and the database 136 of the call record generation device 130 are deployed in a server mode with storage function.

[0124] That is, the call system 700 deployed in a cloud host mode includes: call center equipment 710, soft switch server 720 deployed in a cloud host mode, call bill generation device 730 deployed in a cloud host mode, operator line 740, called phone 750, entry gateway server 760 deployed in a cloud host mode, etc. Among them, the call bill generation device 730 deployed in a cloud host mode includes: call event acquisition server 731 deployed in a cloud host mode, call bill generation server 733, call bill storage server 735, and cache server 732, message queue middleware server 734, and database server 736 deployed in a server mode with storage function. Cache server 732 is, for example, a Redis cache server, and database server 736 is, for example, a MySql database server, but is not limited to the examples given.

[0125] In addition, in order to further improve processing efficiency, each server is deployed in a cluster, for example, the entry gateway server cluster, soft switch server cluster, call event acquisition server cluster, cache server cluster, call record generation server cluster, message queue middleware server cluster, call record storage server cluster, and database server cluster.

[0126] The call center equipment agent initiates a SIP call, and the SIP signaling interaction completes the call establishment; the cloud host server cluster is used to realize the distributed collection and distributed processing of call event messages, the synthesis of distributed call records, the retry synthesis of distributed call records, and the synthesis of backup call records; the message queue middleware server cluster is used to realize the transmission of call event messages and the transmission of synthesized call records. The cache server cluster is used to temporarily store various event message data generated by a call to assist in the synthesis of call records. The database server cluster is used to persistently store call record data. The cloud host server cluster, the message queue middleware server cluster, the cache server cluster, and the database server cluster jointly support the computer program for call record generation and realize the process of distributed synthesis of call records based on call events.

[0127] It should be noted that the collection, collection, updating, analysis, processing, use, transmission, storage and other aspects of user personal information involved in the technical solution of this disclosure are in compliance with the provisions of relevant laws and regulations, are used for legitimate purposes, and do not violate public order and good morals. Necessary measures are taken for user personal information to prevent illegal access to user personal information data and maintain the security of user personal information, network security and national security.

[0128] It should be understood by those skilled in the art that the embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present disclosure may take the form of a computer program product implemented on one or more (non-transient) computer-readable storage media (including but not limited to disk storage, CD-ROM, optical storage, cloud storage, etc.) containing computer program code. A computer program product should be understood as a software product that implements its solution mainly through a computer program.

[0129] The present disclosure is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present disclosure. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0130] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0131] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process in the computer or other programmable device. Figure 1 A process or multiple processes and / or boxes Figure 1A step that specifies a function in one or more boxes.

[0132] The above description is only a preferred embodiment of the present disclosure and is not intended to limit the present disclosure. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present disclosure should be included in the protection scope of the present disclosure.

Claims

1. A method for generating a call record, comprising: Acquire a call event message to be processed, wherein the call event message includes a call identifier, a call event type, and a call event time; According to the call event message, using the call identifier as the primary key, cache the call record data corresponding to the call identifier; Supplementing the missing call record data corresponding to the call identifier according to the cached call record data related to the missing call record data corresponding to the call identifier; Generate a call record corresponding to the call identifier based on the supplementary call record data corresponding to the call identifier.

2. The method for generating a call slip according to claim 1, wherein: Supplementing the missing call record data corresponding to the call identifier includes: In response to obtaining a call end event message, if the call record data other than the call duration corresponding to the call identifier of the call end event message is missing, the call end event message is put back into the call event message queue to be processed; Each call event message in the call event message queue to be processed is processed, and according to the call event message having the call identifier, the call list data corresponding to the call identifier is supplemented.

3. The method for generating a call slip according to claim 2, wherein: Supplementing the missing call record data corresponding to the call identifier also includes: When the replay operation reaches a preset number of times or a preset duration, if the cached bill data corresponding to the call identifier lacks the call start time, the call duration corresponding to the call identifier is supplemented according to the call end time and the first media time in the cached bill data corresponding to the call identifier.

4. The method for generating a call slip according to claim 1, wherein: Supplementing the missing call record data corresponding to the call identifier includes: In response to obtaining a call end event message, if the bill data corresponding to the call identifier except the call duration is complete, the call duration corresponding to the call identifier is supplemented according to the call end time and call start time in the cached bill data corresponding to the call identifier.

5. The method for generating a call slip according to claim 1, wherein: Supplementing the missing call record data corresponding to the call identifier includes: If the call ending event message corresponding to the call identifier is not obtained within the preset duration, the call duration corresponding to the call identifier is supplemented according to the last media time and the first media time in the cached call record data corresponding to the call identifier, or according to the last media time and the call start time in the cached call record data corresponding to the call identifier.

6. The method for generating a call slip according to claim 1, wherein: Supplementing the missing call record data corresponding to the call identifier includes: If the call end event message corresponding to the call identifier is not obtained within the preset duration, and if the cached bill data corresponding to the call identifier lacks the last media time and the first media time, the call duration corresponding to the call identifier is set to 0.

7. The method for generating a call slip according to claim 5 or 6, wherein: Supplementing the missing bill data corresponding to the call identifier also includes: setting the call end status to pending.

8. The method for generating a call slip according to claim 1, wherein: According to the call event message, with the call identifier as the primary key, the call record data corresponding to the call identifier is cached, including one or more of the following: Create an event message based on the channel, use the call ID as the primary key, and cache the incoming call time corresponding to the call ID; According to the channel bridging event message, the call identifier is used as the primary key to cache the transfer time corresponding to the call identifier; According to the channel media transmission event message at each time, the call identifier is used as the primary key to cache the ringing time, the first media time and the last media time corresponding to the call identifier; According to the channel answer event message, the call start time corresponding to the call identifier is cached with the call identifier as the primary key; According to the channel hang-up event message, the call end time corresponding to the call identifier is cached with the call identifier as the primary key; or According to the channel hang-up completion event message, at least one of the call end time, hang-up reason or hang-up direction corresponding to the call identifier is cached with the call identifier as the primary key.

9. The method for generating a call record according to any one of claims 1 to 8, wherein: The call record generation method is executed in a distributed manner.

10. The method for generating a call record according to any one of claims 1 to 8, further comprising: The service control is performed on the call record, and the service control includes billing or closing the call line.

11. A call record generating device, comprising: Memory; And a processor coupled to the memory, wherein the processor is configured to execute the call record generation method according to any one of claims 1 to 10 based on instructions stored in the memory.

12. A call record generating device, comprising: An event acquisition unit, configured to acquire a call event message to be processed, wherein the call event message includes a call identifier, a call event type, and a call event time; A cache unit is configured to cache the call record data corresponding to the call identifier according to the call event message and with the call identifier as the primary key; The call record generation unit is configured to supplement the missing call record data corresponding to the call identifier based on the cached call record data related to the missing call record data corresponding to the call identifier when the call record data corresponding to the call identifier is incomplete; and generate a call record corresponding to the call identifier based on the supplemented call record data corresponding to the call identifier.

13. A computer-readable storage medium having a computer program stored thereon, wherein when the computer program is executed by a processor, the steps of the call record generation method according to any one of claims 1 to 10 are implemented.

14. A computer program product, comprising a computer program, which, when executed by a processor, implements the steps of the call record generation method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • A network call tracking method and device

    CN101237688A

  • Method of preventing loss of phone bill due to switching of service control processor (CP)

    CN101677347A

  • Call data analysis method and device, computer equipment and storage medium

    CN111835924A

  • Fault analysis method and device and computer readable storage medium

    CN113973043A

  • Call detail record signaling synthesis system and method

    CN114189821A

Cited By

  • Call bill file generation method and device and electronic equipment

    CN121397482A