CN116647509A - Load balancing communication system, method, device, server equipment and storage medium - Google Patents

Load balancing communication system, method, device, server equipment and storage medium Download PDF

Info

Publication number
CN116647509A
CN116647509A CN202310254320.9A CN202310254320A CN116647509A CN 116647509 A CN116647509 A CN 116647509A CN 202310254320 A CN202310254320 A CN 202310254320A CN 116647509 A CN116647509 A CN 116647509A
Authority
CN
China
Prior art keywords
client
server
load balancing
signaling
response message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310254320.9A
Other languages
Chinese (zh)
Inventor
古明泉
鲁日樟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Zhongxinjia Technology Development Co ltd
Original Assignee
Sichuan Zhongxinjia Technology Development Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Zhongxinjia Technology Development Co ltd filed Critical Sichuan Zhongxinjia Technology Development Co ltd
Priority to CN202310254320.9A priority Critical patent/CN116647509A/en
Publication of CN116647509A publication Critical patent/CN116647509A/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

The application provides a load balancing communication system, a method, a device, a server device and a storage medium, which relate to the technical field of communication, and the application distributes dialing signaling to FreeWITCH servers of multiple nodes for processing by the proxy servers through deploying the proxy servers of multiple nodes, even if the proxy servers of some nodes fail, the registration data of users can not be lost because each proxy server shares the registration data, and the request sent by a client can still be processed, thereby solving the problem of single-point failure; the throughput of the media data stream is improved by deploying the multi-node FreeWITCH server, and the multi-node proxy server and the multi-node FreeWITCH server are combined to realize the relative balance of loads, so that perfect and reliable SIP call service is provided for users, and the problem of weaker concurrent processing capacity is solved.

Description

Load balancing communication system, method, device, server equipment and storage medium
Technical Field
The present application relates to the field of communications technologies, and in particular, to a load balancing communication system, a method, an apparatus, a server device, and a storage medium.
Background
In a FreeSWITCH server-based communication system, two communicating entities, a and B, communicate via a FreeSWITCH server. When the FreeSWITCH server has a problem of communication link interruption or network connection interruption, a and B cannot complete communication, resulting in a single point of failure.
Moreover, the SIP (Session initialization Protocol, session initiation protocol) protocol stack of the FreeSWITCH server is a sofia, and the sofia protocol stack can only perform single-thread processing, so that the sofia has lower processing performance under the condition of oversized concurrency, and thus the FreeSWITCH server has a stand-alone performance bottleneck, so that the concurrency processing capability of the system is relatively weak.
Disclosure of Invention
The application aims to provide a load balancing communication system, a method, a device, a server device and a storage medium, so as to solve the problems of single-point failure and weaker concurrent processing capacity of the existing communication system.
In a first aspect, an embodiment of the present application provides a load balancing communication system, including a proxy server deployed by multiple nodes and a server cluster formed by FreeSWITCH servers deployed by multiple nodes;
the proxy servers are used for providing a registration function of the client, and each proxy server shares registration data;
the proxy server is further configured to distribute dial signaling of the first client to different FreeSWITCH servers in the server cluster; the FreeWITCH server in the server cluster is used for calling a second client when receiving the dialing signaling, and sending a response message returned by the second client to the proxy server; the proxy server is further configured to return a response message sent by the FreeSWITCH server in the server cluster to the first client, so as to establish communication connection between the first client and the second client;
the FreeSWITCH server is further configured to forward a media data stream between the first client and the second client that establish a communication connection.
Further, the proxy server comprises a Kamailio server.
Further, the load balancing communication system further comprises a MySQL database, wherein the MySQL database is used for storing registration data; the FreeSWITCH server shares registration data through the MySQL database.
In a second aspect, an embodiment of the present application further provides a load balancing communication method, which is applied to the proxy server in the load balancing communication system in the first aspect; the load balancing communication method comprises the following steps:
when receiving a registration signaling of a first client, carrying out identity verification on SIP information in the registration signaling, and when the verification is successful, writing registration data in the registration signaling into a database and periodically synchronizing the registration data in the database;
when a dialing signaling of the first client is received, the dialing signaling is distributed to different FreeWITCH servers in the server cluster so as to call a second client, and the second client returns a response message;
and when receiving a response message sent by the FreeWITCH server in the server cluster, returning the response message to the first client so as to establish communication connection between the first client and the second client.
Further, the distributing the dialing signaling to different FreeSWITCH servers in the server cluster includes:
and configuring header field information of a Record-Route header field in the dialing signaling, and distributing the configured dialing signaling to different FreeWITCH servers in the server cluster.
In a third aspect, an embodiment of the present application further provides a load balancing communication method, which is applied to a FreeSWITCH server in the load balancing communication system in the first aspect; the load balancing communication method comprises the following steps:
when a dialing signaling from a first client sent by the proxy server is received, entering a dialing plan state to search for calling a second client;
when receiving a response message returned by the second client, sending the response message to the proxy server so that the proxy server returns the response message to the first client and establishes communication connection between the first client and the second client;
forwarding of the media data stream is performed between the first client and the second client.
In a fourth aspect, an embodiment of the present application further provides a load balancing communication apparatus, which is applied to a proxy server in the load balancing communication system in the first aspect; the load balancing communication device includes:
the shared registration module is used for carrying out identity verification on the SIP information in the registration signaling when the registration signaling of the first client is received, writing the registration data in the registration signaling into a database when the verification is successful, and carrying out synchronization on the registration data in the database periodically;
the first forwarding module is used for distributing the dialing signaling to different FreeWITCH servers in the server cluster when the dialing signaling of the first client is received so as to call a second client and enable the second client to return a response message;
the first forwarding module is further configured to, when receiving a response message sent by a FreeSWITCH server in the server cluster, return the response message to the first client, so as to establish a communication connection between the first client and the second client.
In a fifth aspect, an embodiment of the present application further provides a load balancing communication apparatus, which is applied to a FreeSWITCH server in the load balancing communication system according to the first aspect; the load balancing communication device includes:
the dialing calling module is used for entering a dialing plan state to search when receiving a dialing signaling sent by the proxy server from the first client so as to call the second client;
the second forwarding module is used for sending the response message to the proxy server when receiving the response message returned by the second client, so that the proxy server returns the response message to the first client, and communication connection between the first client and the second client is established;
and the third forwarding module is used for forwarding the media data stream between the first client and the second client.
In a sixth aspect, an embodiment of the present application further provides a server device, including a memory, and a processor, where the memory stores a computer program that can be run on the processor, and the processor implements the load balancing communication method of the second aspect or the third aspect when executing the computer program.
In a seventh aspect, an embodiment of the present application further provides a storage medium having stored thereon a computer program which, when executed by a processor, performs the load balancing communication method of the second or third aspect.
According to the load balancing communication system, the method, the device, the server equipment and the storage medium provided by the embodiment of the application, through deploying the proxy servers of the multiple nodes, the proxy servers distribute the dialing signaling to the FreeWITCH servers of the multiple nodes for processing, even if the proxy servers of some nodes fail, as each proxy server shares the registration data, the registration data of a user cannot be lost, and the request sent by a client can still be processed, so that the problem of single-point failure is solved; the throughput of the media data stream is improved by deploying the multi-node FreeWITCH servers, all the registrations are responsible for the proxy servers, the media data stream is managed by the FreeWITCH servers, the multi-node proxy servers and the multi-node FreeWITCH servers are combined to realize the relative balance of loads, and perfect and reliable SIP call service is provided for users, so that the problem of weaker concurrent processing capacity is solved.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings that are needed in the description of the embodiments or the prior art will be briefly described, and it is obvious that the drawings in the description below are some embodiments of the present application, and other drawings can be obtained according to the drawings without inventive effort for a person skilled in the art.
Fig. 1 is a schematic structural diagram of a load balancing communication system according to an embodiment of the present application;
fig. 2 is a schematic diagram of an operating principle of a load balancing communication system according to an embodiment of the present application;
fig. 3 is a schematic flow chart of a load balancing communication method according to an embodiment of the present application;
fig. 4 is a flow chart of another load balancing communication method according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of a load balancing communication device according to an embodiment of the present application;
fig. 6 is a schematic structural diagram of another load balancing communication device according to an embodiment of the present application;
fig. 7 is a schematic structural diagram of a server device according to an embodiment of the present application.
Detailed Description
The technical solutions of the present application will be clearly and completely described in connection with the embodiments, and it is apparent that the described embodiments are some embodiments of the present application, but not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the application without making any inventive effort, are intended to be within the scope of the application.
The existing communication system based on the FreeWITCH server has the problems of single-point fault and weaker concurrent processing capacity. By increasing the hardware configuration solution, the cost is expensive and always reaches an upper limit, and flexible unlimited expansion cannot be supported, and the state machine to be maintained is too complex since the amount of binding on FreeSWITCH is very much, while FreeSWITCH is a B2BUA (Back-to-Back User Agent). Because of more concurrent demands and single machine performance bottlenecks, reliability and performance bottlenecks need to be improved through clustering, and resources can be effectively utilized. Based on the above, the load balancing communication system, the method, the device, the server equipment and the storage medium provided by the embodiment of the application can solve the problems of single-point failure and weaker concurrent processing capacity by combining the multi-node proxy server with the multi-node FreeWITCH server.
For the sake of understanding the present embodiment, a detailed description will be given of a load balancing communication system disclosed in the embodiment of the present application.
Referring to a schematic diagram of a load balancing communication system shown in fig. 1, the load balancing communication system includes a proxy server 101 deployed by multiple nodes and a server cluster formed by FreeSWITCH servers 102 deployed by multiple nodes.
The proxy servers 101 are used to provide registration functions for clients, and each proxy server 101 shares registration data.
The proxy server 101 is further configured to distribute dial signaling of the first client to different FreeSWITCH servers 102 in the server cluster; the FreeSWITCH server 102 in the server cluster is configured to call the second client when receiving the dialing signaling, and send a response message returned by the second client to the proxy server 101; the proxy server 101 is further configured to return a response message sent by the FreeSWITCH server 102 in the server cluster to the first client, so as to establish a communication connection between the first client and the second client.
The FreeSWITCH server 102 is also used to forward the media data stream between the first client and the second client that establish the communication connection.
It should be noted that, the three proxy servers 101 and the three FreeSWITCH servers 102 shown in fig. 1 are only examples, and the number of proxy servers 101 and the number of FreeSWITCH servers 102 may be set according to actual requirements, and the number of proxy servers 101 and the number of FreeSWITCH servers 102 are not limited in the present application.
The first client and the second client are clients that have completed registration, the clients register in any proxy server 101, the registration data is stored in a database, and the registration data is synchronized to other proxy servers 101 through the database, and the FreeSwitch server 102 shares the registration data through the database to perform identity verification. For ease of distinction, the calling party will be referred to herein as the first client, and the called Fang Chenwei second client. Because of the greater concurrent demands and the greater number of single-machine mounts, the embodiment of the application adopts a multi-machine mount scheme to realize the relative load balancing, namely adopts the multi-node proxy server 101 and the multi-node FreeWITCH server 102 to realize the relative load balancing.
According to the load balancing communication system provided by the embodiment of the application, the proxy servers of the multiple nodes are deployed, the proxy servers distribute dialing signaling to the FreeWITCH servers of the multiple nodes for processing, and even if the proxy servers of some nodes fail, as each proxy server shares registration data, the registration data of a user cannot be lost, and a request sent by a client can still be processed, so that the problem of single-point failure is solved; the throughput of the media data stream is improved by deploying the multi-node FreeWITCH servers, all the registrations are responsible for the proxy servers, the media data stream is managed by the FreeWITCH servers, the multi-node proxy servers and the multi-node FreeWITCH servers are combined to realize the relative balance of loads, and perfect and reliable SIP call service is provided for users, so that the problem of weaker concurrent processing capacity is solved.
Alternatively, the proxy server 101 may be a Kamailio server. Kamailio is a high performance SIP server that adopts a modular architecture, making the system easily scalable; the Kamailio server can also realize data sharing; the FreeSWITCH server is relatively stiff and difficult to handle in terms of the handling of signaling, while the Kamailio server is more flexible and easier to handle.
A kamalio-based server may implement VoIP (Voice over Internet Protocol, voice over IP) load balancing and registration agents. Proxy SIP using Kamailio servers and distribute traffic and content; all registration is performed by the Kamailio server, media is managed by each FreeSWITCH server 102 (i.e., the Kamailio server is mainly responsible for signaling flows, the FreeSWITCH server 102 is mainly responsible for media data flows), the FreeSWITCH servers 102 share registration data by means of databases or memory databases, etc., and when a call is entered, the registration data is distributed to each different FreeSWITCH server 102 for answering or each FreeSWITCH server 102 directly sends the registration data.
Optionally, the load balancing communication system further includes a MySQL database, where the MySQL database is used to store registration data, and the FreeSWITCH server 102 shares the registration data through the MySQL database.
For ease of understanding, one possible implementation procedure of the above-described load balancing communication system is as follows:
1. ACL (Access Control Lists, access control list) of FreeSWITCH servers is configured, access whitelist of Kamailio servers is configured. Exemplary codes are as follows:
in autoload_configs/acl.conf.xml
<list name="domains"default="deny">
< node type= "allow" cidr= "server address of Kamailio"/>
</list>
2. And configuring a MySQL database. Exemplary codes are as follows:
configuration using MYSQL as storage database, edit etc/kamailio/kamctlirc, add DBENGINE = MYSQL
Creating a database of kamailio, kamdbctl create
kamailio increases account number kamdbctl add username password
The kamailio server uses a dispatcher module to balance loads, configures the dispatcher module, and the exemplary code is as follows:
load balancing dispatcher module for/(and defined) switch
#!define WITH_LOADBALANCE
The// load module, note the last to put to all loadmodules
#!ifdef WITH_LOADBALANCE
loadmodule"dispatcher.so"
#!endif
A// dispatcher configuration
// modparam: the first parameter is the module name, the second parameter is the method in the module, and the third is the parameter of the method
#!ifdef WITH_LOADBALANCE
modparam("dispatcher","db_url",DBURL)
Failed re-push function of// account opening
modparam("dispatcher","flags",2)
//AVPs(Attribute-Value pairs)
modparam("dispatcher","dst_avp","$avp(AVP_DST)")
modparam("dispatcher","grp_avp","$avp(AVP_GRP)")
modparam("dispatcher","cnt_avp","$avp(AVP_CNT)")
Time of beat/heart beat
modparam("dispatcher","ds_ping_interval",20)
How many times the/heartbeat fails, the load service is considered to be dropped
modparam("dispatcher","ds_probing_threshold",3)
And// 2. Only gateways with inactive state of the probing mode setting are tested.
modparam("dispatcher","ds_probing_mode",2)
#modparam("dispatcher","force_dst",1)
The// defines which are eligible return values, multiple return values are used; separation of
modparam("dispatcher","ds_ping_reply_codes","class=2;code=403;code=404;code=407;code=484;class=3")
#!endif
4. The request_route portion is configured, and exemplary key information is as follows:
the configuration is completed in all Kamailio servers and FreeWITCH servers, and subsequent load balancing communication can be performed after the configuration is completed. The dispatcher module is a message distribution center, and all received messages pass through the module and are forwarded to the corresponding processing module by the module; the dispatcher module can be configured in a self-defined manner, and can configure service routing rules according to service scenes, including configuration of Record-Route header fields.
For easy understanding, the working principle of the load balancing communication system described above will be described in detail with reference to fig. 2.
As shown in fig. 2, two proxy servers, nminx Kamailio (i.e., load balancing Kamailio servers), a server cluster including three FreeSWITCH servers, and a MySQL database that provides global shared registered user information (i.e., provides shared registered data), the calling party being mobile user a, and the called party being mobile user B are shown.
1. Registration
Taking the registration of the mobile phone user A as an example, the mobile phone user A sends a register SIP signaling to any proxy server through an SIP gateway, the proxy server performs identity verification on the SIP information, and if the verification is successful, the registration data is written into a MySQL database. Other proxy servers periodically synchronize the registration data in the MySQL database.
2. Dialing number
The mobile phone user A dials, the dialing signaling firstly reaches any proxy server, when Authentication is passed, if a called party (such as the mobile phone user B) is online, the proxy server forwards the Authentication to the FreeWITCH server, the FreeWITCH server enters a dialplan state to search, and then a series of actions to be executed are determined, such as sending an incoming call notification to the mobile phone user B through a service customized APP call interface service, otherwise, the calling party telephone is directly hung up.
3. Answering machine
When the Record-Route header field is configured in advance, when the proxy server receives a SIP message, the Record-Route header field can determine whether to reserve a SIP transaction, that is, whether a subsequent SIP message still passes through the proxy of the proxy server, and when the Record-Route header field information is configured, a called party (such as a mobile phone user B) can send the SIP message which is determined to answer to the proxy server again, and then the proxy server routes the SIP message to a calling party (such as the mobile phone user a).
If the Record-Route header field is not configured in advance, the called party will send the SIP message that determines answering directly to the calling party, and in practical application, a situation that the call can be switched on but the ACK or BYE message is not received (this situation often occurs, especially in the network with NAT (Network Address Translation, network address translation)) may be encountered, and it is necessary to check whether the Record-Route or Contact header field in the transaction is correct. The Contact header field is used for determining a returned client address; the priority of Record-Route is higher than that of Contact, and when Record-Route does not exist, address information in Contact is directly used as destination address information.
RTP (Real-time Transport Protocol ) stream
The RTP media data stream in the conversation process directly bypasses the proxy server, is directly sent to the FreeWITCH server through the terminal (such as a mobile phone user A), and is forwarded to the terminal at the other end (such as a mobile phone user B) through the FreeWITCH server.
The embodiment of the application also provides a load balancing communication method which is applied to the load balancing communication system, and referring to a flow diagram of the load balancing communication method shown in fig. 3, the method mainly comprises the following steps:
in step S301, the first client sends registration signaling to the proxy server.
In step S302, the proxy server performs authentication on the SIP information in the registration signaling.
In step S303, the proxy server writes the registration data in the registration signaling into the database when the authentication is successful.
In step S304, the proxy server periodically synchronizes the registration data in the database.
In step S305, the first client sends a dial signaling to the proxy server.
In step S306, the proxy server distributes the dial-up signaling to the different FreeSWITCH servers in the server cluster.
In order to realize that the SIP message sent by the second client and determined to answer is forwarded to the first client via the proxy server, in this embodiment, the proxy server configures header field information of the Record-Route header field in the dialing signaling, and distributes the configured dialing signaling to different FreeSWITCH servers in the server cluster.
In step S307, the FreeSWITCH server enters a dial plan state for searching.
In step S308, the FreeWITCH server calls the second client.
In step S309, the second client returns a response message to the FreeSWITCH server.
In step S310, the FreeSWITCH server sends a response message to the proxy server.
In step S311, the proxy server returns the response message to the first client. A communication connection between the first client and the second client is thus established.
In step S312, the FreeSWITCH server forwards the media data stream between the first client and the second client.
In order to facilitate understanding, the embodiment of the present application further provides another load balancing communication method, referring to a flowchart of another load balancing communication method shown in fig. 4, the method mainly includes the following steps:
1. the SIP client A sends a registration signaling to a Kamailio server;
2. the Kamailio server returns a registration success response to the SIP client A;
3. the SIP client A sends a dialing signaling to the Kamailio server to call the SIP client B;
4. the Kamailio server forwards the data to the FreeWITCH server;
5. the FreeWITCH server enters a dialing plan state;
6. the FreeWITCH server calls the SIP client B;
7. the response sent by the SIP client B reaches the SIP client A through the FreeWITCH server and the Kamailio server successively;
RTP streaming media transmission between the SIP client A and the SIP client B is realized through FreeWITCH server forwarding.
Corresponding to the load balancing communication method applied to the proxy server, the embodiment of the application also provides a load balancing communication device, referring to a schematic structural diagram of the load balancing communication device shown in fig. 5, the device comprises:
the shared registration module 501 is configured to perform identity verification on SIP information in a registration signaling when a registration signaling of a first client is received, and write registration data in the registration signaling into a database and periodically perform synchronization on the registration data in the database when verification is successful;
the first forwarding module 502 is configured to, when receiving a dialing signaling of the first client, distribute the dialing signaling to different FreeSWITCH servers in the server cluster to call the second client, so that the second client returns a response message;
the first forwarding module 502 is further configured to, when receiving a response message sent by the FreeSWITCH server in the server cluster, return the response message to the first client, so as to establish a communication connection between the first client and the second client.
Further, the first forwarding module 502 is further configured to: and configuring header field information of the Record-Route header field in the dialing signaling, and distributing the configured dialing signaling to different FreeWITCH servers in the server cluster.
Corresponding to the load balancing communication method applied to the FreeSWITCH server, the embodiment of the application also provides a load balancing communication device, referring to a schematic structural diagram of another load balancing communication device shown in fig. 6, the device comprises:
the dial call module 601 is configured to enter a dial plan state to search for calling the second client when a dial signaling from the first client sent by the proxy server is received;
the second forwarding module 602 is configured to send, when receiving a response message returned by the second client, the response message to the proxy server, so that the proxy server returns the response message to the first client, and a communication connection between the first client and the second client is established;
a third forwarding module 603 is configured to forward the media data stream between the first client and the second client.
The implementation principle and the generated technical effects of the load balancing communication method and the device provided by the embodiment are the same as those of the embodiment of the load balancing communication system, and for the sake of brief description, reference may be made to corresponding contents in the embodiment of the load balancing communication system where the embodiment of the load balancing communication method and the device is not mentioned.
As shown in fig. 7, a server apparatus 700 provided in an embodiment of the present application includes: a processor 701, a memory 702, and a bus, the memory 702 storing a computer program executable on the processor 701, the processor 701 and the memory 702 communicating through the bus when the server apparatus 700 is running, the processor 701 executing the computer program to implement the load balancing communication method described above.
Specifically, the memory 702 and the processor 701 can be general-purpose memories and processors, which are not particularly limited herein.
The embodiment of the application also provides a storage medium, and a computer program is stored on the storage medium, and the computer program is executed by a processor to execute the load balancing communication method in the previous method embodiment. The storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a RAM, a magnetic disk, or an optical disk, etc., which can store program codes.
Any particular values in all examples shown and described herein are to be construed as merely illustrative and not a limitation, and thus other examples of exemplary embodiments may have different values.
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
In the several embodiments provided by the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. The above-described apparatus embodiments are merely illustrative, for example, the division of the units is merely a logical function division, and there may be other manners of division in actual implementation, and for example, multiple units or components may be combined or integrated into another system, or some features may be omitted, or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be through some communication interface, device or unit indirect coupling or communication connection, which may be in electrical, mechanical or other form.
Finally, it should be noted that: the above embodiments are only for illustrating the technical solution of the present application, and not for limiting the same; although the application has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some or all of the technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit of the application.

Claims (10)

1. The load balancing communication system is characterized by comprising a proxy server deployed by multiple nodes and a server cluster formed by FreeWITCH servers deployed by multiple nodes;
the proxy servers are used for providing a registration function of the client, and each proxy server shares registration data;
the proxy server is further configured to distribute dial signaling of the first client to different FreeSWITCH servers in the server cluster; the FreeWITCH server in the server cluster is used for calling a second client when receiving the dialing signaling, and sending a response message returned by the second client to the proxy server; the proxy server is further configured to return a response message sent by the FreeSWITCH server in the server cluster to the first client, so as to establish communication connection between the first client and the second client;
the FreeSWITCH server is further configured to forward a media data stream between the first client and the second client that establish a communication connection.
2. The load balancing communication system of claim 1, wherein the proxy server comprises a Kamailio server.
3. The load balancing communication system of claim 1, further comprising a MySQL database for storing registration data; the FreeSWITCH server shares registration data through the MySQL database.
4. A load balancing communication method, characterized by being applied to a proxy server in a load balancing communication system according to any one of claims 1-3; the load balancing communication method comprises the following steps:
when receiving a registration signaling of a first client, carrying out identity verification on SIP information in the registration signaling, and when the verification is successful, writing registration data in the registration signaling into a database and periodically synchronizing the registration data in the database;
when a dialing signaling of the first client is received, the dialing signaling is distributed to different FreeWITCH servers in the server cluster so as to call a second client, and the second client returns a response message;
and when receiving a response message sent by the FreeWITCH server in the server cluster, returning the response message to the first client so as to establish communication connection between the first client and the second client.
5. The method of load balancing communications according to claim 4, wherein said distributing the dial-up signaling to different FreeSWITCH servers in the server cluster comprises:
and configuring header field information of a Record-Route header field in the dialing signaling, and distributing the configured dialing signaling to different FreeWITCH servers in the server cluster.
6. A load balancing communication method, characterized in that it is applied to a FreeSWITCH server in a load balancing communication system according to any one of claims 1-3; the load balancing communication method comprises the following steps:
when a dialing signaling from a first client sent by the proxy server is received, entering a dialing plan state to search for calling a second client;
when receiving a response message returned by the second client, sending the response message to the proxy server so that the proxy server returns the response message to the first client and establishes communication connection between the first client and the second client;
forwarding of the media data stream is performed between the first client and the second client.
7. A load balancing communication apparatus, characterized by being applied to a proxy server in a load balancing communication system as claimed in any one of claims 1-3; the load balancing communication device includes:
the shared registration module is used for carrying out identity verification on the SIP information in the registration signaling when the registration signaling of the first client is received, writing the registration data in the registration signaling into a database when the verification is successful, and carrying out synchronization on the registration data in the database periodically;
the first forwarding module is used for distributing the dialing signaling to different FreeWITCH servers in the server cluster when the dialing signaling of the first client is received so as to call a second client and enable the second client to return a response message;
the first forwarding module is further configured to, when receiving a response message sent by a FreeSWITCH server in the server cluster, return the response message to the first client, so as to establish a communication connection between the first client and the second client.
8. A load balancing communication apparatus, characterized by being applied to a FreeSWITCH server in a load balancing communication system according to any of claims 1-3; the load balancing communication device includes:
the dialing calling module is used for entering a dialing plan state to search when receiving a dialing signaling sent by the proxy server from the first client so as to call the second client;
the second forwarding module is used for sending the response message to the proxy server when receiving the response message returned by the second client, so that the proxy server returns the response message to the first client, and communication connection between the first client and the second client is established;
and the third forwarding module is used for forwarding the media data stream between the first client and the second client.
9. A server device comprising a memory, a processor, the memory having stored therein a computer program executable on the processor, characterized in that the processor implements the load balancing communication method of any of claims 4-6 when executing the computer program.
10. A storage medium having a computer program stored thereon, which, when executed by a processor, performs the method of any of claims 4-6.
CN202310254320.9A 2023-03-16 2023-03-16 Load balancing communication system, method, device, server equipment and storage medium Pending CN116647509A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310254320.9A CN116647509A (en) 2023-03-16 2023-03-16 Load balancing communication system, method, device, server equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310254320.9A CN116647509A (en) 2023-03-16 2023-03-16 Load balancing communication system, method, device, server equipment and storage medium

Publications (1)

Publication Number Publication Date
CN116647509A true CN116647509A (en) 2023-08-25

Family

ID=87621810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310254320.9A Pending CN116647509A (en) 2023-03-16 2023-03-16 Load balancing communication system, method, device, server equipment and storage medium

Country Status (1)

Country Link
CN (1) CN116647509A (en)

Similar Documents

Publication Publication Date Title
US7660297B2 (en) Voice over IP forwarding
US10200458B2 (en) System and method for managing media in a distributed communication network
US11381606B2 (en) System and method for using software defined networking in internet protocol multimedia subsystems
Wang et al. ICEBERG: An Internet core network architecture for integrated communications
US8219697B2 (en) Diameter protocol and SH interface support for SIP server architecture
US8001250B2 (en) SIP and HTTP convergence in network computing environments
US9077738B1 (en) Systems and methods for setting up a collaborative communication system
US8125888B2 (en) Session initiation protocol survivable server
US7881287B2 (en) Method and device for session control in hybrid telecommunications network
US8432896B2 (en) System and method for optimizing communications between session border controllers and endpoints in a network environment
US7870418B2 (en) Enhanced presence routing and roster fidelity by proactive crashed endpoint detection
US20060165064A1 (en) Method and apparatus for a network element to track the availability of other network elements
US10637929B1 (en) Methods and apparatus for storing and/or retrieving session state information
CN113727464B (en) Method and device for establishing high concurrent call of SIP streaming media server
US20140289420A1 (en) System and method for managing media in a distributed communication network
JP2006101528A (en) Detection of looping communication channel
US10313400B2 (en) Method of selecting a network resource
US10348714B1 (en) Systems and methods for setting up a collaborative communication system
US20090016324A1 (en) Method and Gateway for Connecting IP Communication Entities via a Residential Gateway
CN116647509A (en) Load balancing communication system, method, device, server equipment and storage medium
US9942280B2 (en) Data exchange sessions using groups of terminals of a first user and at least one terminal of a second user
CN111492633B (en) Methods, systems, and entities for media delivery sessions in an IMS infrastructure
JP4523012B2 (en) Session control apparatus, control method, and program
US11785057B1 (en) Increase service reliability by reusing session-stateful service instances within a single long-lived session
CN114465991B (en) Connection method and device of soft telephone

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination