Call method and device, medium, electronic equipment and computer program product

By establishing a binding relationship between the private number and the called number in the outgoing call system, using the session initial protocol and the private call mode, the problem of low outgoing call connection rate caused by virtual numbers is solved, and an efficient call success rate is achieved.

CN120343159APending Publication Date: 2025-07-18BYTEDANCE TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510589248.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-07
Publication Date
2025-07-18

AI Technical Summary

Technical Problem

The existing outbound call system uses untrusted virtual numbers, which makes the outbound call unable to be effectively connected, reducing the success rate of the outbound call system.

Method used

By determining the privacy number and the called number, a binding relationship between the first actual number, the privacy number and the called number is established, and a call is established using the session initial protocol and the privacy call mode to ensure that the specified privacy number is displayed on the called side and the call success rate is improved.

Benefits of technology

The success rate of calling the second object is greatly improved, and by combining the SIP line and the AXB line, it ensures that the specified privacy number is displayed on the called side.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120343159A_ABST
    Figure CN120343159A_ABST
Patent Text Reader

Abstract

A call method and apparatus, a medium, an electronic device and a computer program product relate to the technical field of communications, and the method comprises the steps of determining a first actual number for establishing a call between a first object and a second object according to a private number by determining the private number and a called number, and establishing a binding relationship among the first actual number, the privacy number and the called number, then establishing a first call between the first actual number and the privacy number through a session initial protocol according to the binding relationship and the first actual number, and establishing a second call between the first actual number and the privacy number through a privacy call mode according to the binding relationship and the privacy number. And establishing a second call between the private number and the called number to establish a call between the first object and the second object through the first call and the second call, the private number for the outbound call can be specified by the first object to display the private number specified by the first object on one side of the second object, and the private number for the outbound call can be displayed on the other side of the second object. The success rate of calling the second object is greatly improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of communication technologies, and in particular, to a call method, apparatus, medium, electronic device, and computer program product. Background Art

[0002] Due to the advantages of voice outbound calls such as time-saving, labor-saving, and low cost, many enterprise users will establish their own outbound call systems for marketing activities. However, most of the current outbound call systems use untrusted virtual numbers for calls, resulting in a large number of outbound calls being unable to be effectively connected, greatly reducing the success rate of the outbound call system. Summary of the Invention

[0003] This Summary of the Invention section is provided to introduce concepts in a brief form that will be described in detail in the following Detailed Implementation section. This Summary of the Invention section is not intended to identify key features or essential features of the claimed technical solution, nor is it intended to be used to limit the scope of the claimed technical solution.

[0004] In a first aspect, the present disclosure provides a call method, including: Determining a privacy number selected by a first object and a called number corresponding to a second object to be called by the first object; Determining a first actual number for establishing a call between the first object and the second object according to the privacy number, and establishing a binding relationship between the first actual number, the privacy number, and the called number; Establishing a first call between the first actual number and the privacy number through the Session Initiation Protocol according to the binding relationship and the first actual number, and establishing a second call between the privacy number and the called number through a privacy call mode according to the binding relationship and the privacy number, so as to establish a call between the first object and the second object through the first call and the second call.

[0005] In a second aspect, the present disclosure provides a call apparatus, including: A first determination module configured to determine a privacy number selected by a first object and a called number corresponding to a second object to be called by the first object; A second determination module configured to determine a first actual number for establishing a call between the first object and the second object according to the privacy number, and establish a binding relationship between the first actual number, the privacy number, and the called number; The call module is configured to establish a first call between the first actual number and the privacy number through the Session Initiation Protocol according to the binding relationship and the first actual number, and establish a second call between the privacy number and the called number through the private call mode according to the binding relationship and the privacy number, so as to establish a call between the first object and the second object through the first call and the second call.

[0006] In a third aspect, the present disclosure provides a computer-readable medium having a computer program stored thereon, and when the computer program is executed by a processing device, the steps of the method described in the first aspect are implemented.

[0007] In a fourth aspect, the present disclosure provides an electronic device, including: A storage device having a computer program stored thereon; A processing device for executing the computer program in the storage device to implement the steps of the method described in the first aspect.

[0008] In a fifth aspect, the present disclosure provides a computer program product including a computer program, and when the computer program is executed by a processor, the steps of the method described in the first aspect are implemented.

[0009] Based on the above technical solutions, by determining the privacy number and the called number, determining the first actual number for establishing a call between the first object and the second object according to the privacy number, and establishing a binding relationship between the first actual number, the privacy number, and the called number, and then according to the binding relationship and the first actual number, establishing a first call between the first actual number and the privacy number through the Session Initiation Protocol, and according to the binding relationship and the privacy number, establishing a second call between the privacy number and the called number through the private call mode, so as to establish a call between the first object and the second object through the first call and the second call, the first object can specify the privacy number for outgoing calls, so that the privacy number specified by the first object is displayed on the side of the second object, greatly improving the success rate of calling the second object.

[0010] Other features and advantages of the present disclosure will be described in detail in the subsequent specific implementation section. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] In combination with the drawings and with reference to the following specific implementation, the above and other features, advantages, and aspects of the various embodiments of the present disclosure will become more apparent. Throughout the drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic, and the original components and elements are not necessarily drawn to scale. In the drawings: Figure 1 is a flowchart of a call method shown according to some embodiments.

[0012] Figure 2 It is a schematic diagram of a call system shown according to some embodiments.

[0013] Figure 3 It is a flowchart of selecting a first actual number shown according to some embodiments.

[0014] Figure 4 It is a logical schematic diagram of call bill merging shown according to some embodiments.

[0015] Figure 5 It is a schematic structural diagram of a call device shown according to some embodiments.

[0016] Figure 6 It is a schematic structural diagram of an electronic device shown according to some embodiments. Detailed implementation manners

[0017] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although some embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. On the contrary, these embodiments are provided to more thoroughly and completely understand the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not used to limit the protection scope of the present disclosure.

[0018] It should be understood that the various steps recited in the method embodiments of the present disclosure can be executed in a different order and / or executed in parallel. In addition, the method embodiments may include additional steps and / or omit the steps shown. The scope of the present disclosure is not limited in this regard.

[0019] As used herein, the term "including" and its variants are open-ended, that is, "including but not limited to". The term "based on" is "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". The relevant definitions of other terms will be given in the following description.

[0020] It should be noted that the concepts such as "first" and "second" mentioned in the present disclosure are only used to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or the interdependence relationship.

[0021] It should be noted that the modifications of "one" and "multiple" mentioned in the present disclosure are illustrative rather than restrictive. Those skilled in the art should understand that unless otherwise clearly specified in the context, it should be understood as "one or more".

[0022] The names of the messages or information exchanged between multiple devices in the embodiments of the present disclosure are for illustrative purposes only and are not used to limit the scope of these messages or information.

[0023] It can be understood that before using the technical solutions disclosed in the embodiments of the present disclosure, the types, usage scopes, usage scenarios, etc. of the personal information involved in the present disclosure should be informed to the user and the user's authorization should be obtained in an appropriate manner in accordance with relevant laws and regulations.

[0024] For example, when responding to receiving an active request from a user, a prompt message is sent to the user to clearly prompt the user that the operation requested by the user will require obtaining and using the user's personal information. Thus, the user can autonomously choose whether to provide personal information to software or hardware such as an electronic device, an application program, a server, or a storage medium that performs the operations of the technical solutions of the present disclosure according to the prompt message.

[0025] As an optional but non-limiting implementation manner, the manner of sending a prompt message to the user in response to receiving an active request from the user can be, for example, in the form of a pop-up window, and the prompt message can be presented in text in the pop-up window. In addition, the pop-up window can also carry a selection control for the user to choose "agree" or "disagree" to provide personal information to the electronic device.

[0026] It can be understood that the above process of notifying and obtaining the user's authorization is only illustrative and does not constitute a limitation on the implementation manner of the present disclosure, and other manners that meet relevant laws and regulations can also be applied to the implementation manner of the present disclosure.

[0027] At the same time, it can be understood that the data involved in the present technical solution (including but not limited to the data itself, the acquisition or use of the data) should comply with the requirements of corresponding laws, regulations and related regulations.

[0028] Figure 1 is a flowchart of a call method shown according to some embodiments. As Figure 1 shown, the embodiments of the present disclosure provide a call method, which can specifically be executed by a call device, and the device can be implemented in a software and / or hardware manner. As Figure 1 shown, the method may include the following steps.

[0029] In step 110, determine the privacy number selected by the first object and the called number corresponding to the second object to be called by the first object.

[0030] Here, the first object may be the first user, and the second object may be the second user. During a call, the first object is the calling party of the call, and the second object is the called party of the call. The privacy number may refer to an intermediate virtual number provided by the service provider, and the called number may refer to the real phone number used by the second object.

[0031] In the privacy call mode (AXB call mode), A represents the real phone number of the calling party, X represents the intermediate virtual number, and B represents the real phone number of the called party. When A dials X, the call will be automatically transferred to B, and the incoming call number displayed on B's side is X. In the embodiments of the present disclosure, the privacy number selected by the first object is equivalent to X, and the called number corresponding to the second object is equivalent to B.

[0032] In some embodiments, the first object may select a privacy number for calling the called number corresponding to the second object according to requirements.

[0033] Exemplarily, the first object may select a privacy number that is consistent with the location of the called number from the provided privacy numbers according to the location of the called number to be called, so as to improve the success rate of calling the second object.

[0034] In step 120, according to the privacy number, determine the first actual number for establishing a call between the first object and the second object, and establish a binding relationship between the first actual number, the privacy number, and the called number.

[0035] Here, the first actual number is equivalent to the real phone number used by the first object to call the second object. After determining the privacy number for calling the called number, the first actual number is determined through the privacy number. In the AXB call mode, the first actual number is equivalent to A.

[0036] The binding relationship between the first actual number, the privacy number, and the called number may refer to the call relationship between the first actual number, the privacy number, and the called number. In the AXB call mode, the binding relationship between the first actual number, the privacy number, and the called number is AXB, and its call relationship is that the first actual number calls the privacy number, and the privacy number calls the called number.

[0037] In step 130, according to the binding relationship and the first actual number, establish the first call between the first actual number and the privacy number through the Session Initiation Protocol, and according to the binding relationship and the privacy number, establish the second call between the privacy number and the called number through the privacy call mode, so as to establish a call between the first object and the second object through the first call and the second call.

[0038] Here, the Session Initialization Protocol (SIP) is a multimedia communication protocol. The Session Initialization Protocol is a text-based application layer control protocol used to create, modify, and release sessions of one or more participants.

[0039] The privacy number called by the first actual number can be queried in the binding relationship through the first actual number, and then through the Session Initialization Protocol, the first actual number calls the privacy number to establish a first call between the first actual number and the privacy number. At this time, the first actual number is the caller of the first call, and the privacy number is the called party of the first call.

[0040] After the first call is established, the call from the first actual number to the privacy number will be transferred to the called number of the second object. The called number called by the privacy number can be queried in the binding relationship through the privacy number, and through the private call mode (AXB call mode), the privacy number calls the called number to establish a second call between the privacy number and the called number. At this time, the privacy number is the caller of the second call, and the called number is the called party of the second call.

[0041] In the private call mode, the second call between the privacy number and the called number will be transferred to the first call between the first actual number and the privacy number, thereby realizing a call between the first object and the second object.

[0042] Figure 2 is a schematic diagram of a call system shown according to some embodiments. As Figure 2 shown, the first object selects a privacy number and a called number. The privacy number and the called number selected by the first object are transmitted to the line management system. The line management system transmits the privacy number and the called number to the privacy number service. The privacy number service determines the first actual number according to the privacy number and establishes a binding relationship between the first actual number, the privacy number, and the called number. The privacy number service returns the binding relationship to the line management system. The line management system determines that the caller of the Session Initialization Protocol is the first actual number and the called party is the privacy number according to the binding relationship and the first actual number. Then the line management system notifies the actual number provider to call the privacy number through the Session Initialization Protocol to establish a first call between the first actual number and the privacy number. The call from the first actual number to the privacy number is transmitted through the network to the privacy number provider. The privacy number provider then queries the corresponding called number in the corresponding binding relationship according to the privacy number. Then the privacy number provider calls the called number through the privacy number in the private call mode to establish a second call between the privacy number and the called number, realizing a call between the first object and the second object.

[0043] Among them, the actual number provider is the service provider for providing actual numbers. The privacy number provider is the service provider for providing privacy numbers.

[0044] It is worth noting that in the second object, the privacy number is used as the displayed number. Since the privacy number is selected by the first object according to requirements, the first object can customize the incoming call number displayed on the second object side, thereby increasing the success rate of calling the second object.

[0045] It should be understood that in the embodiments of the present disclosure, in fact, the SIP line and the AXB line are combined. Through the SIP protocol, the first actual number is used to call the privacy number, and during the call process, AXB binding is performed, so that the privacy number selected by the first object is displayed on the second object side, improving the connection rate of outbound calls.

[0046] Thus, by determining the privacy number and the called number, according to the privacy number, determining the first actual number for establishing a call between the first object and the second object, and establishing a binding relationship between the first actual number, the privacy number, and the called number, and then according to the binding relationship and the first actual number, through the Session Initiation Protocol, establishing the first call between the first actual number and the privacy number, and according to the binding relationship and the privacy number, through the private call mode, establishing the second call between the privacy number and the called number, so as to establish a call between the first object and the second object through the first call and the second call, the first object can specify the privacy number for outbound calls, so that the privacy number specified by the first object is displayed on the second object side, greatly increasing the success rate of calling the second object.

[0047] Moreover, by combining the SIP line and the AXB line, through the SIP protocol, using the first actual number to call the privacy number, and during the call process, performing AXB binding, so that the privacy number selected by the first object is displayed on the second object side, improving the connection rate of outbound calls.

[0048] In some implementable embodiments, in step 120, the second actual number can be determined from the candidate actual numbers according to the privacy number and the maintained binding relationship, and then the first actual number can be determined according to the concurrency of the second actual number.

[0049] Here, the binding relationship refers to the binding relationship between the actual number, the privacy number, and the called number, that is, the AXB binding relationship. It should be noted that for calls made through the call method provided by the embodiments of the present disclosure, the corresponding binding relationship will be established through the above step 120, and the maintained binding relationship refers to the binding relationships corresponding to all ongoing calls currently.

[0050] Exemplarily, the binding relationship can be stored in a database. Among them, the database can be a Redis (Remote Dictionary Server) database. It should be understood that since the read and write speed of the Redis database is very fast, it can greatly improve the efficiency of selecting the second actual number.

[0051] Query the corresponding second actual number in the maintained binding relationship through the privacy number determined by the first object. Among them, the second actual number is the actual number among the candidate actual numbers that is not bound by the privacy number.

[0052] The candidate actual numbers can be real telephone numbers provided by the actual number provider, and the number of candidate actual numbers can be multiple. The actual number among the candidate actual numbers that is not bound by the privacy number can be understood as the actual number not occupied by the privacy number determined by the first object.

[0053] The following details the logic of selecting the second actual number in conjunction with Table 1.

[0054] Table 1:

[0055] Assume that currently A1X1B1 is making a call. In the binding relationship shown in Table 1, the binding relationships between A1X1B1 and A1X1B2 conflict, that is, the privacy number X1 has occupied the actual number A1. If there are binding relationships between A1X1B1 and A1X1B2 at the same time, X1 determines that the called parties include B1 and B2, and the called party cannot be uniquely determined, so there is a conflict between A1X1B1 and A1X1B2.

[0056] Therefore, when selecting the second actual number, it is necessary to exclude the actual numbers among the candidate actual numbers that have been bound by the privacy number determined by the first object, and the remaining actual numbers are the second numbers.

[0057] The concurrency of the actual number refers to the current concurrency of the actual number. Among them, the current concurrency refers to the number of calls that the actual number is currently making simultaneously. The current concurrency is a dynamic indicator that changes with the change of calls. For example, if an actual number is currently used for 3 calls, then the current concurrency of this actual number is 3.

[0058] In some embodiments, each time a candidate actual number is determined as the first actual number, the concurrency of the first actual number is recorded in the mapping table.

[0059] Among them, a mapping table can be maintained in the database, and this mapping table is used to record the concurrency of all candidate actual numbers.

[0060] Exemplarily, the database can be a Redis database, and the mapping table can be a map (hash table) structure in the Redis database. In the map, the actual number is used as the key and the concurrency volume is used as the value to record the concurrency volume of the actual number.

[0061] Whenever a candidate actual number is determined as the first actual number, indicating that a call is made using the first actual number, the concurrency volume of the first actual number is recorded once in the mapping table. For example, the concurrency volume of the first actual number is incremented by 1.

[0062] It should be understood that by using the map structure of the Redis database to record the concurrency volume of the actual number, since the read and write speed of the Redis database is very fast, the selection efficiency of the first actual number can be greatly improved.

[0063] In some embodiments, according to the second actual number, the corresponding concurrency volume of the second actual number can be queried in the mapping table, and based on the corresponding concurrency volume of the second actual number, a second actual number with a remaining concurrency volume is randomly selected as the first actual number.

[0064] Among them, after determining the second actual number, the Redis database can be accessed through the privacy number service, and through the second actual number, the corresponding concurrency volumes of all second actual numbers can be queried in the corresponding mapping table. Then, based on the queried corresponding concurrency volumes of all second actual numbers, a second actual number with a remaining concurrency volume is randomly selected from all second actual numbers as the first actual number.

[0065] It is worth noting that the second actual number with a remaining concurrency volume refers to the second actual number whose current concurrency volume has not reached the maximum concurrency volume. For example, the maximum concurrency volume of an actual number is 5, and the current concurrency volume of this actual number is 3, then the remaining concurrency volume of this actual number is 2.

[0066] By querying the concurrency volume of the second actual number in the mapping table, the first actual number can be quickly selected, greatly improving the selection efficiency of the first actual number.

[0067] Figure 3 is a flowchart showing the selection of the first actual number according to some embodiments. As Figure 3As shown, obtain the actual number of the first object configuration from the number pool service, load the obtained actual number into the cache, query all the actual numbers in the cache. If there is a cache miss, query the missed actual number in the number pool service and reload it into the cache. After the privacy number service receives the privacy number, the privacy number service selects a second actual number according to the privacy number, randomly selects a second actual number with remaining concurrency from the second actual numbers as the first actual number, and records the concurrency of the first actual number in the mapping table.

[0068] In some implementable embodiments, the first call record corresponding to the first call and the second call record corresponding to the second call can be merged according to the received time to obtain a third call record, and the third call record is pushed to the first object.

[0069] Here, in the call between the first object and the second object, two-way calls are involved. The first call is: call the privacy number by calling the first actual number through the SIP protocol. The second call is: call the called number by calling the privacy number through the AXB call mode. Therefore, in one call, actually two call records will be generated, namely the first call record of the first actual number calling the privacy number (equivalent to the SIP call record) and the second call record of the privacy number calling the called number (equivalent to the AXB call record).

[0070] Since the call duration and ringing time of one call need to be extracted from the first call record to be more accurate, it is necessary to merge the first call record and the second call record to obtain a third call record. It should be noted that for the merged third call record, some fields in the third call record come from the second call record, and some fields come from the first call record.

[0071] In the embodiments of the present disclosure, different merging logics can be used to merge the first call record and the second call record according to the different received times of the first call record corresponding to the first call and the second call record corresponding to the second call.

[0072] In some embodiments, in the case of receiving the first call record and the second call record simultaneously, based on the distributed lock, the first call record and the second call record are merged to obtain a third call record.

[0073] Among them, if the first time of receiving the first call record corresponding to the first call and the second time of receiving the second call record corresponding to the second call indicate that the first call record and the second call record are received simultaneously, the call record merging is performed through the distributed lock.

[0074] It should be understood that merging the first call record and the second call record based on the distributed lock can be that the first call record and the second call record compete for the distributed lock, and the other call record is merged based on the call record that grabs the distributed lock.

[0075] Through the distributed lock, it can be ensured that when the first call record and the second call record are received simultaneously, the call record merging is unique and there will be no duplicate merging of call records. That is to say, through the distributed lock, it can be ensured that the first call record and the second call record are merged only once, avoiding duplicate pushing of call record data.

[0076] In some embodiments, after receiving the first call record or the second call record, if the other call record among the first call record and the second call record is not received after an interval of the first preset duration, then after an interval of the second preset duration, it is queried whether the other call record is received, and in the case where the other call record is not received, based on the received first call record or second call record, a third call record is obtained.

[0077] Among them, not receiving the other call record among the first call record and the second call record after an interval of the first preset duration means that within the first preset duration after receiving the first call record or the second call record, the other call record among the first call record and the second call record is not received. For example, after receiving the first call record, the second call record is not received within the subsequent first preset duration. Another example is that after receiving the second call record, the first call record is not received within the subsequent first preset duration.

[0078] In the case where the other call record among the first call record and the second call record is not received after an interval of the first preset duration, pushing the call record to the first object is delayed. After an interval of the second preset duration, it is queried whether the other call record is received, and in the case where the other call record is not received, based on the received first call record or second call record, a third call record is obtained. In the case where the other call record is received, based on the received first call record and second call record, a third call record is obtained.

[0079] It should be noted that the first preset duration and the second preset duration can be set according to the actual situation. For example, the second preset duration can be set to 10 minutes. After an interval of the second preset duration, if the other call record is not queried, the other call record may have been lost. At this time, the received first call record or second call record can be used as the third call record. Of course, it is also possible to fill in the blank content in the received first call record or second call record to obtain the third call record.

[0080] It should be understood that in specific implementation, it can be determined whether the interval of the second preset duration is reached through a delayed message. For example, the privacy number service can send a delayed message to itself that is received only after the specified second preset duration. When the privacy number service receives the delayed message, the call record merging is performed again to query whether the other call record is received. Among them, the delayed message can be a delayed message of RabbitMQ (a widely used open-source message broker software).

[0081] Based on this, by setting the second preset duration, it is possible to avoid the problem that the call bill cannot be normally pushed due to the abnormal return of a certain call bill.

[0082] In some embodiments, after receiving the first call bill or the second call bill, if the other call bill in the first call bill and the second call bill is received within the first preset duration, the first call bill and the second call bill are normally merged.

[0083] Among them, normally merging the first call bill and the second call bill may be to merge the other received call bill on the basis of the previously received call bill. For example, if the first call bill arrives first and the second call bill arrives later, the second call bill is merged on the basis of the first call bill. If the second call bill arrives first and the first call bill arrives later, the first call bill is merged on the basis of the second call bill.

[0084] It should be noted that in the above embodiments, the privacy number service may adopt different call bill merging logics to merge the first call bill and the second call bill based on the different times of receiving the first call bill and the second call bill, which can not only ensure that the call bills are not repeatedly merged, but also timely push the call bill to the first object in the case of loss of a certain call bill.

[0085] In some implementable embodiments, when receiving the first call bill or the second call bill, the binding relationship between the first actual number, the privacy number and the called number is released, and the concurrency of the first actual number is reduced by one.

[0086] Here, when the privacy number service receives any one of the first call bill and the second call bill, the privacy number service releases the binding relationship between the first actual number, the privacy number and the called number to timely release the first actual number after the call ends. Moreover, the concurrency of the first actual number is reduced by one in the mapping table, that is, the concurrency of the first actual number - 1.

[0087] In some implementable embodiments, when the time interval between the current time and the timestamp of determining the first actual number is greater than the preset threshold, the binding relationship between the first actual number, the privacy number and the called number is released, and the concurrency of the first actual number is reduced by one.

[0088] Here, the timestamp of determining the first actual number refers to the time when the actual number is selected as the first actual number. In the embodiments of the present disclosure, the timestamp corresponding to each actual number can be maintained in the map structure of Redis. For example, using the actual number as the key and the timestamp as the value. The privacy number service can It should be understood that in the embodiment of the present disclosure, two Redis maps may be maintained, one map for recording the concurrency of the actual number, and the other map for recording the timestamp of the actual number. In order to ensure that the update of the two maps is an atomic operation, the update may be performed through Redis Lua script (a function for executing scripts on Redis, which allows developers to execute multiple Redis commands in one script and ensure the atomic execution of these commands).

[0089] The time interval between the current time and the timestamp determined to obtain the first actual number is greater than a preset threshold, indicating that the corresponding call has exceeded the normal call duration and the call is abnormal.

[0090] Following the above embodiment, when the privacy number service receives the first call record or the second call record, it will release the binding relationship between the first actual number, the privacy number and the called number and reduce the concurrency of the first actual number.

[0091] If the privacy number service has not received the first call bill or the second call bill, the corresponding first actual number cannot be released. Therefore, in this embodiment, when the time interval between the current time and the timestamp of determining the first actual number is greater than the preset threshold, the binding relationship between the first actual number, the privacy number and the called number is directly released, and the concurrency of the first actual number is reduced once, so that the first actual number is released in the event of an abnormal call bill.

[0092] In a specific implementation, after the first actual number is determined, a timed task may be set, and the timed task is executed when the time interval between the current time and the timestamp of the determined first actual number is greater than a preset threshold.

[0093] Figure 4 FIG. 1 is a logical diagram of call record merging according to some embodiments. Figure 4 As shown, after the call ends, the privacy number provider pushes the second call record to the privacy number service, and the SIP call record service pushes a SIP message to the privacy number service. When the privacy number service receives the first call record or the second call record, it releases the corresponding binding relationship and reduces the concurrency of the first actual number. In addition, the privacy number service executes the call record merging logic, queries the first call record from the SIP call record service, merges the first call record and the second call record, writes the merged third call record into the database, and records the merge status of each call record. Then, the privacy number service pushes the third call record to the first object.

[0094] It should be noted that after receiving the first call bill or the second call bill, if the other call bill in the first call bill and the second call bill is not received after an interval of the first preset duration, the privacy number service will also send a delay message to itself, which is used to trigger the re-merging of the call bills after receiving the delay message.

[0095] Moreover, a corresponding timing task can be created in the privacy number service. When the timing task is triggered, the corresponding binding relationship is released, and the concurrency of the first actual number is reduced by one.

[0096] Figure 5 It is a schematic structural diagram of a call device shown according to some embodiments. As Figure 5 shown, an embodiment of the present disclosure provides a call device 500, and the call device 500 includes: A first determination module 501, configured to determine the privacy number selected by the first object and the called number corresponding to the second object to be called by the first object; A second determination module 502, configured to determine a first actual number for establishing a call between the first object and the second object according to the privacy number, and establish a binding relationship between the first actual number, the privacy number, and the called number; A call module 503, configured to establish a first call between the first actual number and the privacy number through the Session Initiation Protocol according to the binding relationship and the first actual number, and establish a second call between the privacy number and the called number through the privacy call mode according to the binding relationship and the privacy number, so as to establish a call between the first object and the second object through the first call and the second call.

[0097] Optionally, the second determination module 502 is specifically configured to: Determine a second actual number from the candidate actual numbers according to the privacy number and the maintained binding relationship, where the second actual number is an actual number in the candidate actual numbers that is not bound by the privacy number; Determine the first actual number according to the concurrency of the second actual number.

[0098] Optionally, the call device 500 further includes: A recording module, configured to record the concurrency of the first actual number once in a mapping table every time the candidate actual number is determined to be the first actual number.

[0099] Optionally, the second determination module 502 is specifically configured to: Query the concurrency corresponding to the second actual number in the mapping table according to the second actual number; According to the concurrency corresponding to the second actual number, a second actual number with remaining concurrency is randomly selected as the first actual number.

[0100] Optionally, the communication device 500 further includes: A merging module, configured to merge the first call record and the second call record corresponding to the first call according to the time when the first call record corresponding to the first call is received and the time when the second call record corresponding to the second call is received, so as to obtain a third call record; A push module is configured to push the third call record to the first object.

[0101] Optionally, the merging module is specifically configured as follows: When the first call record and the second call record are received at the same time, the first call record and the second call record are merged based on a distributed lock to obtain the third call record.

[0102] Optionally, the merging module is specifically configured as follows: After receiving the first call record or the second call record, if the other call record of the first call record and the second call record is not received within a first preset time interval, query whether the other call record is received after a second preset time interval; In the case that the other call record is not received, the third call record is obtained based on the received first call record or the second call record.

[0103] Optionally, the communication device 500 further includes: The first release module is configured to release the binding relationship between the first actual number, the privacy number and the called number, and reduce the concurrency of the first actual number once when receiving the first call record or the second call record.

[0104] Optionally, the communication device 500 further includes: The first release module is configured to release the binding relationship between the first actual number, the privacy number and the called number, and reduce the concurrency of the first actual number when the time interval between the current time and the timestamp determined to be the first actual number is greater than a preset threshold.

[0105] The functional logic executed by each functional module in the above-mentioned communication device 500 has been described in detail in the part about the method, and will not be repeated here.

[0106] Reference below Figure 6, which shows a schematic structural diagram of an electronic device (terminal device or server) 600 suitable for implementing the embodiments of the present disclosure. The terminal devices in the embodiments of the present disclosure may include, but are not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Tablet Computers), PMPs (Portable Multimedia Players), in-vehicle terminals (such as in-vehicle navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Figure 6 The illustrated electronic device is merely an example and should not impose any limitation on the functions and usage scope of the embodiments of the present disclosure.

[0107] As Figure 6 shown, the electronic device 600 may include a processing device (such as a central processing unit, a graphics processing unit, etc.) 601, which may perform various appropriate actions and processes according to the program stored in the read-only memory (ROM) 602 or the program loaded from the storage device 608 into the random access memory (RAM) 603. In the RAM 603, various programs and data required for the operation of the electronic device 600 are also stored. The processing device 601, the ROM 602, and the RAM 603 are connected to each other through a bus 604. The input / output (I / O) interface 605 is also connected to the bus 604.

[0108] Generally, the following devices may be connected to the I / O interface 605: an input device 606 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 607 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 608 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 609. The communication device 609 may allow the electronic device 600 to communicate with other devices wirelessly or wiredly to exchange data. Although Figure 6 the illustrated electronic device 600 has various devices, it should be understood that it is not required to implement or have all the illustrated devices. More or fewer devices may be alternatively implemented or had.

[0109] Particularly, according to the embodiments of the present disclosure, the processes described above with reference to the flowcharts may be implemented as computer software programs. For example, the embodiments of the present disclosure include a computer program product, which includes a computer program carried on a non-transitory computer-readable medium, and the computer program includes program codes for executing the methods shown in the flowcharts. In such an embodiment, the computer program may be downloaded and installed from the network through the communication device 609, or installed from the storage device 608, or installed from the ROM 602. When the computer program is executed by the processing device 601, the above-mentioned functions defined in the methods of the embodiments of the present disclosure are executed.

[0110] It should be noted that the computer-readable medium described above in this disclosure can be a computer-readable signal medium, a computer-readable storage medium, or any combination of the two. A computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples of a computer-readable storage medium can include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In this disclosure, a computer-readable storage medium can be any tangible medium that contains or stores a program, and this program can be used by or in conjunction with an instruction execution system, apparatus, or device. And in this disclosure, a computer-readable signal medium can include a data signal propagated in a baseband or as part of a carrier wave, which carries computer-readable program code. Such a propagated data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium, and this computer-readable signal medium can send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on a computer-readable medium can be transmitted using any appropriate medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.

[0111] In some embodiments, the client and the server can communicate using any currently known or future-developed network protocol such as HTTP (HyperText Transfer Protocol), and can be interconnected with digital data communication in any form or medium (e.g., a communication network). Examples of communication networks include local area networks ("LAN"), wide area networks ("WAN"), the Internet (e.g., the Internet), and end-to-end networks (e.g., ad hoc end-to-end networks), as well as any currently known or future-developed network.

[0112] The above computer-readable medium can be included in the above electronic device; or it can exist separately without being assembled into the electronic device.

[0113] The above computer-readable medium carries one or more programs which, when executed by the electronic device, cause the electronic device to: determine a privacy number selected by a first object and a called number corresponding to a second object to be called by the first object; determine a first actual number for establishing a call between the first object and the second object according to the privacy number, and establish a binding relationship between the first actual number, the privacy number, and the called number; establish a first call between the first actual number and the privacy number through the Session Initiation Protocol according to the binding relationship and the first actual number, and establish a second call between the privacy number and the called number through a privacy call mode according to the binding relationship and the privacy number, so as to establish a call between the first object and the second object through the first call and the second call.

[0114] Computer program code for performing the operations of the present disclosure may be written in one or more programming languages or combinations thereof. The programming languages include, but are not limited to, object-oriented programming languages such as Java, Smalltalk, C++, and also include conventional procedural programming languages such as the "C" language or similar programming languages. The program code 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 a 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 (for example, by using an Internet service provider to connect through the Internet).

[0115] The flowcharts and block diagrams in the accompanying drawings illustrate the possible architectures, functions, and operations 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 program segment, or a part of code that contains one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than marked in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, and they may sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, and the combinations of blocks in the block diagram and / or flowchart, may be implemented by a dedicated hardware-based system for performing the specified functions or operations, or may be implemented by a combination of dedicated hardware and computer instructions.

[0116] The modules involved in the embodiments of the present disclosure can be implemented in software or in hardware. In some cases, the name of a module does not constitute a limitation on the module itself.

[0117] The functions described above herein can be performed, at least in part, by one or more hardware logic components. By way of example, and without limitation, the types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on a chip (SOCs), complex programmable logic devices (CPLDs), and the like.

[0118] In the context of the present disclosure, a machine-readable medium may be a tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0119] The above description is only a preferred embodiment of the present disclosure and an explanation of the applied technical principles. Those skilled in the art should understand that the scope of the disclosure involved in the present disclosure is not limited to the technical solutions formed by the specific combination of the above technical features, and should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above disclosure concept. For example, the technical solutions formed by mutually replacing the above features with the technical features (but not limited to) having similar functions disclosed in the present disclosure.

[0120] In addition, although the operations are depicted in a particular order, this should not be construed as requiring that the operations be performed in the particular order shown or in sequential order. In certain circumstances, multitasking and parallel processing may be advantageous. Similarly, although several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of the present disclosure. Certain features described in the context of separate embodiments may also be implemented combinatorially in a single embodiment. Conversely, the various features described in the context of a single embodiment may also be implemented separately or in any suitable sub-combination in multiple embodiments.

[0121] Although the subject matter has been described in language specific to structural features and / or methodological logical acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. On the contrary, the specific features and acts described above are merely example forms of implementing the claims. Regarding the apparatus in the above embodiments, the specific manner in which each module performs operations has been described in detail in the embodiments related to the method, and will not be elaborated here.

Claims

1. A call method, characterized in that, Including: Determine the privacy number selected by the first object and the called number corresponding to the second object to be called by the first object; According to the privacy number, determine the first actual number for establishing a call between the first object and the second object, and establish a binding relationship between the first actual number, the privacy number, and the called number; According to the binding relationship and the first actual number, establish a first call between the first actual number and the privacy number through the Session Initiation Protocol, and according to the binding relationship and the privacy number, establish a second call between the privacy number and the called number through the private call mode, so as to establish a call between the first object and the second object through the first call and the second call.

2. The method according to claim 1, characterized in that, The determining the first actual number for establishing a call between the first object and the second object according to the privacy number includes: According to the privacy number and the maintained binding relationship, determine a second actual number among the candidate actual numbers, where the second actual number is an actual number that is not bound by the privacy number among the candidate actual numbers; Determine the first actual number according to the concurrency of the second actual number.

3. The method according to claim 2, wherein The method further includes: In the case where the candidate actual number is determined as the first actual number each time, record the concurrency of the first actual number in the mapping table once.

4. The method according to claim 3, wherein The determining the first actual number according to the concurrency of the second actual number includes: Query the concurrency corresponding to the second actual number in the mapping table according to the second actual number; Randomly select a second actual number with remaining concurrency as the first actual number according to the concurrency corresponding to the second actual number.

5. The method according to any one of claims 1 to 4, characterized in that, The method further includes: According to the time of receiving the first call bill corresponding to the first call and the second call bill corresponding to the second call, merge the first call bill and the second call bill to obtain a third call bill; Push the third call bill to the first object.

6. The method according to claim 5, wherein The merging the first call bill and the second call bill according to the time of receiving the first call bill corresponding to the first call and the second call bill corresponding to the second call to obtain a third call bill includes: In the case of receiving the first call bill and the second call bill simultaneously, based on a distributed lock, merge the first call bill and the second call bill to obtain the third call bill.

7. The method according to claim 5, wherein The merging the first call bill and the second call bill according to the time of receiving the first call bill corresponding to the first call and the second call bill corresponding to the second call to obtain a third call bill includes: After receiving the first call bill or the second call bill, if the other call bill in the first call bill and the second call bill is not received after an interval of the first preset duration, then after an interval of the second preset duration, query whether the other call bill is received; In the case of not receiving the other call bill, obtain the third call bill based on the received first call bill or second call bill.

8. The method according to claim 5, wherein The method further includes: Upon receiving the first call record or the second call record, the binding relationship among the first actual number, the privacy number, and the called number is released, and the concurrency of the first actual number is decreased by one time.

9. The method according to claim 5, characterized in that, The method further includes: When the time interval between the current time and the timestamp of the determined first actual number is greater than a preset threshold, the binding relationship among the first actual number, the privacy number, and the called number is released, and the concurrency of the first actual number is decreased by one time.

10. A call device, characterized in that, It includes: A first determination module, configured to determine the privacy number selected by the first object and the called number corresponding to the second object to be called by the first object; A second determination module, configured to determine, according to the privacy number, the first actual number for establishing a call between the first object and the second object, and establish a binding relationship among the first actual number, the privacy number, and the called number; A call module, configured to establish a first call between the first actual number and the privacy number through the Session Initiation Protocol according to the binding relationship and the first actual number, and establish a second call between the privacy number and the called number through the private call mode according to the binding relationship and the privacy number, so as to establish a call between the first object and the second object through the first call and the second call.

11. A computer-readable medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processing device, the steps of the method according to any one of claims 1-9 are implemented.

12. An electronic device, characterized in that, It includes: A storage device, on which a computer program is stored; A processing device, configured to execute the computer program in the storage device to implement the steps of the method according to any one of claims 1-9.

13. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, the steps of the method according to any one of claims 1-9 are implemented.