Network video conference implementation system, method, device and storage medium

By setting up an edge media server within the local area network and using a signaling server for connection information transmission, the high bandwidth consumption and security issues caused by deploying SFU media servers on the public network are resolved, resulting in a cost-effective and secure network video conferencing system.

CN116033111BActive Publication Date: 2026-07-31SUZHOU KEYUAN SOFTWARE TECH DEV +1
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SUZHOU KEYUAN SOFTWARE TECH DEV
Filing Date
2022-12-29
Publication Date
2026-07-31

AI Technical Summary

Technical Problem

In existing technologies, when SFU media servers are deployed on the public internet, it leads to high bandwidth consumption between user terminals and media servers, increased costs, and poor network security. Furthermore, hybrid cloud deployments present complex scheduling and network communication issues.

Method used

By using an edge media server within a local area network (LAN), the media server connection information is sent to the user terminal via a signaling server. The user terminal directly connects to the edge media server in the same LAN, avoiding the need for separate allocation of public IP addresses, simplifying the deployment of the edge media server and improving security.

Benefits of technology

It saves on public IP resource costs, reduces the risk of network attacks, simplifies the deployment process of edge media servers, and reduces bandwidth consumption and computing resource requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116033111B_ABST
    Figure CN116033111B_ABST
Patent Text Reader

Abstract

This application provides a network video conferencing system, method, device, and storage medium. The system includes: an edge media server, located in a local area network (LAN), for receiving media data published by user terminals within the same LAN and publishing it to a central media server, and for requesting media data from user terminals within the same LAN in response to their subscription requests; a central media server, located in a wide area network (WAN), for receiving media data published by the edge media server and sending media publication information to a signaling server, and for sending requested media data to the edge media server in response to its acquisition requests; and a signaling server, located in the WAN, for receiving media publication information and sending it to the edge media server and user terminals, and for sending connection information of the media server to user terminals in response to their participation requests. By adopting this application, public IP resources are saved, and security is enhanced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data processing technology, and in particular to a network video conferencing system, method, device and storage medium. Background Technology

[0002] SFU, or Selective Forwarding Unit, is used for selectively forwarding audio and video media data between different user terminals in scenarios such as multi-user video conferencing. Compared to the MCU (Multipoint Control Unit) architecture, SFU eliminates the need for encoding, decoding, mixing, and screen mixing of audio and video media data on the media server, significantly saving computing resources and thus offering a lightweight service architecture. Compared to Mesh, a P2P solution that consumes a lot of bandwidth and can only support small-scale meetings, the SFU architecture can support large-scale, high-concurrency video conferencing applications with thousands or even tens of thousands of participants. However, the SFU architecture requires forwarding multiple different audio and video media streams between different user terminals on demand, placing high demands on server scheduling and media stream forwarding.

[0003] SFU media servers are typically deployed in central data centers on the public internet, such as Alibaba Cloud. Sometimes, to reduce latency and speed up response times, some SFU media servers are also deployed in cities or regions closer to users; these are called edge media servers, but they are generally still deployed on the public internet.

[0004] Because the SFU media server is deployed on the public internet (which can be called a public cloud deployment), the following problems may occur when many users within an organization's local area network participate in a video conference:

[0005] Each user terminal needs to transmit audio and video media data separately to a media server on the public internet, thus consuming a significant amount of an organization's outbound bandwidth. For example, if each video data stream is 2Mbps, then 100 users participating in a meeting within the company would require 200Mbps of outbound bandwidth, which could severely impact other internet applications within the company, or result in poor audio and video quality during the meeting due to insufficient bandwidth.

[0006] Similarly, media servers on the public internet need to transmit audio and video media data individually to each user terminal, thus consuming a significant amount of data center outbound bandwidth, and the cost of public internet traffic makes the cost relatively high. If edge media servers are still deployed on the public internet, then it is still necessary to apply for valuable public IP addresses and occupy public internet data centers.

[0007] Deploying all servers within a local area network (a private cloud deployment) can solve the above problems, but how do we ensure communication between different internal networks? On the other hand, deploying some servers on the public network and others on the internal network (a hybrid cloud deployment) inevitably raises complex issues such as how to schedule data between different servers and how to correctly transmit the necessary audio and video media data to the corresponding user terminals, as well as related network information security issues.

[0008] Application content

[0009] To address the problems in the existing technology, the purpose of this application is to provide a network video conferencing system, method, device, and storage medium that eliminates the need to allocate a separate public IP address for the edge media server, thereby saving the cost of public IP resources, and is also more secure and less susceptible to attacks. Furthermore, by sending all available media server connection information to the user terminal through a signaling server, the user terminal can successfully connect to the edge media server in the same local area network.

[0010] This application provides a method for implementing network video conferencing, including:

[0011] Media servers, including:

[0012] An edge media server, located in a local area network, is used to receive media data published by user terminals in the same local area network and publish it to the central media server, and to send the requested media data to the user terminal in response to the subscription request of the user terminal in the same local area network.

[0013] The central media server, located in the wide area network, is used to receive media data published by the edge media server and send media publishing information to the signaling server, and to respond to the acquisition request of the edge media server by sending the requested media data to the edge media server.

[0014] A signaling server, located in a wide area network, is used to receive the media publishing information and send it to the edge media server and the user terminal, and in response to the user terminal's request to participate in a conference, send the connection information of the media server to the user terminal. The user terminal is configured to perform connectivity detection on each of the media servers when it receives the connection information of the media server, select an edge media server located in the same local area network for connection, or connect to the central media server when it cannot connect to an edge media server in the same local area network.

[0015] This application implements a network video conferencing system by placing the edge media server within a local area network (LAN). Each user terminal directly connects to the edge media server within the same LAN, publishing or retrieving media data from its corresponding edge media server. This eliminates the need to allocate separate public IP addresses to the edge media server, saving on public IP resource costs and enhancing security against attacks. Furthermore, the edge media server only includes the edge media server itself, excluding the signaling server, thus simplifying edge media server deployment and eliminating the complex business logic and database storage required by the signaling server, thereby reducing the security requirements for the edge media server. When a user terminal participates in a meeting, the signaling server sends connection information for all available media servers to the user terminal, ensuring a smooth connection to the edge media server within the same LAN.

[0016] In some embodiments, a scheduling server is further included, which is used to register the started edge media server and the central media server, obtain the connection information of the edge media server and the central media server, and send it to the signaling server.

[0017] In some embodiments, the media server is further configured to, upon receiving a connection request from the user terminal, obtain first verification information sent by the user terminal, calculate second verification information based on a pre-stored key, and perform legality verification on the user terminal based on the first verification information and the second verification information.

[0018] In some embodiments, the signaling server is further configured to, upon receiving connection information sent by the scheduling server, issue a media server ID and a key to the media server corresponding to the connection information, and, in response to the user terminal's request to participate in the conference, calculate the first verification information based on the key and send it to the user terminal.

[0019] In some embodiments, in response to a meeting participation request from a user terminal, the signaling server obtains user terminal information and meeting information from the meeting participation request, calculates the first verification information based on the user terminal information, the meeting information, the media server ID, and the key, and sends it to the user terminal.

[0020] When the media server receives a connection request from the user terminal, it calculates the second verification information based on its own server ID, key, user terminal information, and conference information.

[0021] In some embodiments, the signaling server is further configured to, when there are multiple edge media servers in the same local area network as the user terminal that sent the request to participate in the conference, select the edge media server with the lowest current busy level through the scheduling server, and send the connection information of the selected edge media server to the user terminal.

[0022] In some embodiments, when the edge media server receives a subscription request from a first user terminal in the same local area network, if the second user terminal corresponding to the requested media data is located in the same local area network, the edge media server sends the media data of the second user terminal stored in the server to the first user terminal.

[0023] If the third user terminal corresponding to the requested media data is not located in the same local area network, the media data of the third user terminal is obtained from the central media server, stored in this server, and sent to the first user terminal.

[0024] This invention also provides a method for implementing network video conferencing, using the aforementioned network video conferencing system, the method comprising:

[0025] In response to a user terminal's request to participate in a conference, the signaling server sends the connection information of the media server to the user terminal.

[0026] When the user terminal receives the connection information of the media server, it performs connectivity detection on each of the media servers, selects an edge media server located in the same local area network for connection, or connects to the central media server when it cannot connect to an edge media server in the same local area network.

[0027] The edge media server receives media data published by user terminals in the same local area network and sends it to the central media server;

[0028] The central media server receives media data published by the edge media server and sends media publishing information to the signaling server;

[0029] The signaling server receives the media publishing information and sends it to the edge media server and the user terminal;

[0030] In response to a subscription request from a user terminal on the same local area network, the edge media server sends the requested media data, either stored on the server or obtained from the central media server, to the user terminal.

[0031] This application employs a network video conferencing method that places the edge media server within a local area network (LAN). Each user terminal directly connects to the edge media server within the same LAN, publishing or retrieving media data from its corresponding edge media server. This eliminates the need to allocate separate public IP addresses to the edge media server, saving on public IP resource costs and enhancing security against attacks. Furthermore, the edge media server only includes the edge media server itself, excluding the signaling server, thus simplifying edge media server deployment and eliminating the complex business logic and database storage required by the signaling server, thereby reducing security requirements. When a user terminal participates in the meeting, the signaling server sends connection information for all available media servers to the user terminal, ensuring a smooth connection to the edge media server within the same LAN.

[0032] This application also provides a network video conferencing device, including:

[0033] processor;

[0034] A memory in which executable instructions of the processor are stored;

[0035] The processor is configured to execute the steps of the network video conferencing implementation method by executing the executable instructions.

[0036] By employing the network video conferencing implementation device provided in this application, the processor executes the network video conferencing implementation method when executing the executable instructions, thereby obtaining the beneficial effects of the aforementioned network video conferencing implementation method.

[0037] This application also provides a computer-readable storage medium for storing a program, which, when executed by a processor, implements the steps of the network video conferencing implementation method.

[0038] By employing the computer-readable storage medium provided in this application, the program stored therein implements the steps of the network video conferencing implementation method when executed, thereby obtaining the beneficial effects of the above-described network video conferencing implementation method. Attached Figure Description

[0039] Other features, objects, and advantages of this application will become more apparent from the following detailed description of non-limiting embodiments with reference to the accompanying drawings.

[0040] Figure 1 This is a schematic diagram of the structure of a network video conferencing system according to an embodiment of this application;

[0041] Figure 2This is an architecture diagram of a network video conferencing system according to an embodiment of this application;

[0042] Figure 3 This is a flowchart of a network video conferencing implementation method according to an embodiment of this application;

[0043] Figure 4 This is a schematic diagram of the structure of a network video conferencing device according to an embodiment of this application;

[0044] Figure 5 This is a schematic diagram of the structure of a computer storage medium according to an embodiment of this application. Detailed Implementation

[0045] Exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, these exemplary embodiments can be implemented in many forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this application will be thorough and complete, and will fully convey the concept of the exemplary embodiments to those skilled in the art. The same reference numerals in the drawings denote the same or similar structures, and therefore repeated descriptions of them will be omitted.

[0046] like Figure 1 As shown, in one embodiment, this application provides a method for implementing network video conferencing, including:

[0047] Edge media server M100, located in a local area network (LAN), is used to receive media data published by user terminals in the same LAN and publish it to central media server M200, and to send requested media data to user terminals in response to subscription requests in the same LAN; here, media data mainly refers to audio and video media data in network video conferencing.

[0048] The central media server M200, located in the wide area network, is used to receive media data published by the edge media server M100 and send media publishing information to the signaling server M300, and to send the requested media data to the edge media server M100 in response to the acquisition request of the edge media server M100; the edge media server M100 and the central media server M200 are collectively referred to as media servers;

[0049] Signaling server M300, located in a wide area network, is used to receive the media publishing information and send it to the edge media server M100 and the user terminal. In response to the user terminal's request to participate in the conference, it sends the connection information of the media server to the user terminal. The user terminal is configured to perform connectivity detection on each of the media servers when it receives the connection information of the media server, select the edge media server M100 located in the same local area network for connection, or connect to the central media server M200 when it cannot connect to the edge media server M100 in the same local area network.

[0050] In this embodiment, the signaling server M300 sending the connection information of the media server to the user terminal means that the signaling server M300 sends the connection information of all currently available (currently registered and in normal working condition) media servers to the user terminal, including the edge media server M100 and the central media server M200, so as to ensure that the user terminal can still connect to the central media server M200 when it cannot connect to the edge media server M100.

[0051] This application implements a network video conferencing system by placing the edge media server M100 within a local area network (LAN). Each user terminal directly connects to the edge media server M100 within the same LAN, publishing or retrieving media data from its corresponding server. This eliminates the need to allocate a separate public IP address to the edge media server M100, saving on public IP resource costs and enhancing security against attacks. Furthermore, the edge media server system only includes the edge media server M100 and excludes the signaling server M300, simplifying deployment and eliminating the complex business logic and database storage required by the signaling server M300, thus reducing security requirements. When a user terminal participates in a meeting, the signaling server sends connection information for all available media servers to the user terminal, ensuring a smooth connection to the edge media servers within the same LAN.

[0052] In this embodiment, the signaling server M300 is also used to respond to the user terminal's request to participate in the conference by sending the connection information of the edge media server M100 to the user terminal, wherein the user terminal is configured to connect to the edge media server M100 in the same local area network based on the connection information.

[0053] like Figure 2As shown, in this embodiment, the network video conferencing system further includes a scheduling server M400, which is used to register the started edge media server M100 and the central media server M200, obtain the connection information of the edge media server M100 and the central media server M200, and send it to the signaling server M300.

[0054] The following is combined Figure 2 The following example illustrates the working process of this network video conferencing system. Assume a company has two branch offices, A and B, located in different locations. All user terminal signaling communication connects to the signaling server M300 in the central computer room for unified management. All media servers also connect to the scheduling server M400 for unified scheduling. A central media server M200 (multiple servers can be clustered) is deployed within the central computer room to handle media forwarding between the different branch offices. Each branch office A and B deploys an edge media server M100 (multiple servers can be clustered if the branch office is large), which does not require a public IP address and is responsible for forwarding the audio and video media data needed by the user terminals within its own branch office.

[0055] After the edge media server M100 and the central media server M200 start up, they will actively connect to the scheduling server M400 to register and inform it of their connection information. This connection information includes at least IP address, media port, and media forwarding capabilities. The IP address of the edge media server M100 is an internal IP address within the local area network, while the IP address of the central media server M200 is a public IP address. The scheduling server M400 then informs the signaling server M300 of this information.

[0056] Because the signaling server M300 requires a database and other systems to store user account information (including login passwords), deploying only a media server and not a signaling server within the branch office can greatly simplify the system. However, this raises the question of how to ensure the legitimacy of user terminals accessing the edge media server M100.

[0057] In this embodiment, the edge media server M100 and the central media server M200 are further configured to, upon receiving a connection request from the user terminal, obtain first verification information sent by the user terminal, calculate second verification information based on a pre-stored key, and perform legitimacy verification on the user terminal based on the first verification information and the second verification information to ensure the security of user access to the media server. Specifically, the legitimacy verification method of the media server is as follows:

[0058] The signaling server M300 is also used to, upon receiving connection information from the scheduling server M400 for a newly joined media server, issue a Key and a Secret to the media server corresponding to the connection information. The Key is a fixed value, such as the media server ID, and the Secret is a randomly generated key. In response to the user terminal's request to participate in the conference, based on the key, the first verification information Token1 is calculated according to the user terminal information, the conference information, the media server ID, and the key, and then sent to the user terminal. For example, Token1 consists of the following information: Key + User Terminal ID + Conference ID + Validity Period + Salt Value, and HMAC operations are performed on the above information using the Secret to generate Token1. Specifically, for each available media server, the signaling server M300 calculates the first verification information associated with the user terminal and sends it to the user terminal along with the connection information of that media server.

[0059] When the media server receives a connection request from the user terminal, it extracts the first verification information Token1, user terminal information, and conference information from the connection request. Based on the server ID, key, user terminal information, and conference information, it calculates the second verification information Token2 using the same calculation method as the first verification information Token1. It then compares the first verification information Token1 and the second verification information Token2 sent by the user terminal. If they match, the legitimacy verification passes; otherwise, the legitimacy verification fails.

[0060] To initiate a network video conference, a user terminal needs to connect to the nearest edge media server M100 located within the same local area network (LAN). Configuring a separate edge media server M100 address for each user terminal would be extremely labor-intensive, given the potentially large number of user terminals and media servers. Furthermore, any changes (such as user terminal migration, server migration, or temporary shutdown) would require manual reconfiguration. An alternative solution is for the signaling server M300 to determine if the user terminal and edge media server M100 are on the same LAN based on whether they share the same external IP address. The signaling server M300 then pushes the corresponding edge media server M100's IP address and port. By determining the LAN compatibility based on the shared external IP address, the signaling server M300 automatically removes other edge media servers M100 when pushing their IP address and port, thus avoiding unnecessary connectivity checks by the user terminal. However, this approach also has its problems: First, a company may have multiple public IP address exits, and if the signaling server M300 only filters according to IP address, it may miss some; second, even within the same public IP address, due to VLAN segmentation or firewalls, user terminals may not be able to access all edge media servers M100 within the same local area network.

[0061] Therefore, in this embodiment, a scheme is adopted in which the user terminal automatically discovers the nearest media server. The signaling server M300, in response to the user terminal's request to participate in the conference, sends connection information of all edge media servers M100 and the central media server M200 to the user terminal. The user terminal is configured to, upon receiving the connection information of all edge media servers M100 and the central media server M200, perform connectivity checks on the connection information of each media server, select an edge media server M100 located within the same local area network for connection, or connect to the central media server M200 if a connection to an edge media server M100 within the same local area network is not possible.

[0062] For example, when a user terminal starts up and participates in the meeting, the signaling server M300 pushes connection information for all edge media servers M100 and the central media server M200. This connection information includes IP addresses and ports, and the edge media server M100 is given a high priority. The signaling format uses the standard SDP format (see RFC#5245 & RFC#8445):

[0063] a=candidate:1 1udp 2130706431 10.67.18.178 50955typ host

[0064] a=candidate:2 1udp 2130706431 192.168.0.16 50955typ host

[0065] a=candidate:3 1udp 2113994751 112.4.82.116 50955typ host

[0066] In the above, 1, 2, and 3 represent edge media server A, edge media server B, and central media server, respectively. The field after UDP indicates the priority; the priority of the edge media server (2130706431) is higher than that of the central media server (2113994751). Following this are the IP address and port.

[0067] The user terminal actively performs connectivity checks on these IP addresses and ports. Specifically, after receiving numerous connection requests, the user terminal extracts the IP address and port from each request and attempts to connect to each. It first sends a connection request to the IP address and port listed in each request. If a response is received from the corresponding edge media server M100, it indicates that the edge media server M100 is located on the same local area network (LAN), and this server is prioritized over the central media server M200. If no response is received from an edge media server M100, it indicates that the edge media server M100 is located on a different LAN, and this server is actively excluded. If multiple edge media servers M100 are available, the one with the fastest response time is selected. When an edge media server M100 fails, the user terminal can connect to the central media server M200 and still obtain audio and video media data from it.

[0068] When there are multiple media servers in a cluster, the scheduling server M400 can also select one or more of the less busy media servers and push them to the user terminal based on their workload. In this embodiment, the signaling server M300 is also used to select the edge media server M100 with the lowest current workload through the scheduling server M400 when there are multiple edge media servers M100 in the same local area network as the user terminal that sent the request to participate in the conference, and send the connection information of the selected edge media server M100 to the user terminal.

[0069] After the video conference starts, the scheduling server M400 coordinates the central media server M200 and each edge media server M100 to select and convert audio and video media data for the user terminals. All user terminals publish the audio and video media data to the nearest edge media server M100 (or publish on demand, i.e., only when someone subscribes). Then, the edge media server M100 publishes it to the central media server M200. The central media server M200 informs the signaling server M300 of the relevant publication information (such as the stream ID and publisher ID of each published audio and video). The signaling server M300 pushes this information to each user terminal and the edge media server M100.

[0070] In this embodiment, when the edge media server M100 receives a subscription request from a first user terminal in the same local area network, if the second user terminal corresponding to the requested media data is located in the same local area network, the server sends the media data of the second user terminal stored in the server to the first user terminal.

[0071] If the third user terminal corresponding to the requested media data is not located in the same local area network, the requested media data is obtained from the central media server M200, stored in this server, and sent to the first user terminal.

[0072] by Figure 2 For example, when user terminal 1 subscribes to the audio and video media data of user terminal 2 from edge server A, edge server A senses that the audio and video media data of user terminal 2 is published on its own server, and therefore directly forwards the audio and video media data of user terminal 2 to user terminal 1.

[0073] When user terminal 1 subscribes to the audio and video media data of user terminal 3 from edge server A, edge server A detects that the audio and video media data of user terminal 3 is not published on its own server. Therefore, it obtains the audio and video media data of user terminal 3 from the central media server and then forwards it to user terminal 1.

[0074] When user terminal 1 and user terminal 2 simultaneously subscribe to audio and video media data from user terminal 3 via edge server A, edge server A first obtains the audio and video media data from the central media server, and then forwards it to user terminals 1 and 2 respectively. The same process applies when multiple user terminals simultaneously subscribe to the same audio and video media stream.

[0075] Therefore, in the network video conferencing system of this embodiment, user terminals within the same local area network subscribe to each other's audio and video media data, all of which are forwarded through the local edge media server M100, without consuming the company's outbound bandwidth or the resources of the central media server M200. When multiple user terminals within the same local area network subscribe to the audio and video data of the same external user terminal, only one copy of the audio and video media data of that user terminal needs to be obtained by the edge media server M100 and then forwarded to multiple user terminals within the local area network, thereby greatly saving the company's outbound bandwidth and also reducing the outbound bandwidth and computing resource requirements of the central media server M200.

[0076] Since video conferencing typically involves a few speakers and many listeners, meaning a few user terminals publish but many user terminals subscribe, adopting this system architecture can result in significant savings in an organization's IT resources.

[0077] like Figure 3 As shown, this embodiment of the invention also provides a method for implementing network video conferencing, using the aforementioned network video conferencing system. The method includes:

[0078] S100: In response to the user terminal's request to participate in the conference, the signaling server sends the connection information of the media server to the user terminal;

[0079] S200: When the user terminal receives the connection information of the media server, it performs connectivity detection on each of the media servers, selects an edge media server located in the same local area network for connection, or connects to the central media server when it cannot connect to an edge media server in the same local area network.

[0080] S300: The edge media server receives media data published by user terminals in the same local area network and sends it to the central media server;

[0081] S400: The central media server receives the media data published by the edge media server and sends the media publishing information to the signaling server;

[0082] S500: The signaling server receives the media publishing information and sends it to the edge media server and the user terminal;

[0083] S600: In response to a subscription request from a user terminal on the same local area network, the edge media server sends the requested media data stored on the server or obtained from the central media server to the user terminal.

[0084] Specifically, when the edge media server receives a subscription request from a user terminal within the same local area network (LAN), if the second user terminal corresponding to the requested media data is located within the same LAN, the edge media server sends the media data of the second user terminal stored on its server to the first user terminal. If the third user terminal corresponding to the requested media data is not located within the same LAN, the edge media server obtains the media data of the third user terminal from the central media server, stores it on its own server, and sends it to the first user terminal.

[0085] This application employs a network video conferencing method that places the edge media server within a local area network (LAN). Each user terminal directly connects to the edge media server within the same LAN, publishing or retrieving media data from its corresponding edge media server. This eliminates the need to allocate separate public IP addresses to the edge media server, saving on public IP resource costs and enhancing security against attacks. Furthermore, the edge media server only includes the edge media server itself, excluding the signaling server, thus simplifying edge media server deployment and eliminating the complex business logic and database storage required by the signaling server, thereby reducing security requirements. When a user terminal participates in the meeting, the signaling server sends connection information for all available media servers to the user terminal, ensuring a smooth connection to the edge media server within the same LAN.

[0086] This application also provides a network video conferencing implementation device, including a processor; a memory storing executable instructions of the processor; wherein the processor is configured to perform the steps of the network video conferencing implementation method by executing the executable instructions.

[0087] Those skilled in the art will understand that various aspects of this application can be implemented as a system, method, or program product. Therefore, various aspects of this application can be specifically implemented in the following forms: a completely hardware implementation, a completely software implementation (including firmware, microcode, etc.), or a combination of hardware and software implementations, collectively referred to herein as a "circuit," "module," or "system."

[0088] The following reference Figure 4 To describe an electronic device 600 according to this embodiment of the present application. Figure 4 The electronic device 600 shown is merely an example and should not impose any limitations on the functionality and scope of use of the embodiments of this application.

[0089] like Figure 4As shown, the electronic device 600 is presented in the form of a general-purpose computing device. The components of the electronic device 600 may include, but are not limited to: at least one processing unit 610, at least one storage unit 620, a bus 630 connecting different system components (including storage unit 620 and processing unit 610), a display unit 640, etc.

[0090] The storage unit stores program code that can be executed by the processing unit 610, causing the processing unit 610 to perform the steps described in the above-described section of the electronic prescription transfer processing method according to various exemplary embodiments of this application. For example, the processing unit 610 can perform actions such as... Figure 1 The steps are shown in the figure.

[0091] The storage unit 620 may include a readable medium in the form of a volatile storage unit, such as a random access memory unit (RAM) 6201 and / or a cache storage unit 6202, and may further include a read-only memory unit (ROM) 6203.

[0092] The storage unit 620 may also include a program / utility 6204 having a set (at least one) program module 6205, such program module 6205 including but not limited to: an operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.

[0093] Bus 630 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration port, a processing unit, or a local bus using any of the various bus structures.

[0094] Electronic device 600 can also communicate with one or more external devices 700 (e.g., keyboard, pointing device, Bluetooth device, etc.), and with one or more devices that enable a user to interact with electronic device 600, and / or with any device that enables electronic device 600 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 650. Furthermore, electronic device 600 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 660. Network adapter 660 can communicate with other modules of electronic device 600 via bus 630. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 600, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.

[0095] By employing the network video conferencing implementation device provided in this application, the processor executes the network video conferencing implementation method when executing the executable instructions, thereby obtaining the beneficial effects of the aforementioned network video conferencing implementation method.

[0096] This application also provides a computer-readable storage medium for storing a program that, when executed by a processor, implements the steps of the network video conferencing implementation method. In some possible implementations, various aspects of this application can also be implemented as a program product comprising program code that, when run on a terminal device, causes the terminal device to perform the steps described in the above-described electronic prescription processing method section of this specification according to various exemplary embodiments of this application.

[0097] refer to Figure 5 As shown, a program product 800 for implementing the above-described method according to an embodiment of this application is described. It may employ a portable compact disc read-only memory (CD-ROM) and include program code, and can run on a terminal device, such as a personal computer. However, the program product of this application is not limited thereto. In this document, a readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.

[0098] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0099] The computer-readable storage medium may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The readable storage medium may also be any readable medium other than a readable storage medium, capable of transmitting, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the readable storage medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.

[0100] Program code for performing the operations of this application can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java and C++, and conventional procedural programming languages ​​such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or cluster. In cases involving remote computing devices, the remote computing devices can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to external computing devices (e.g., via the Internet using an Internet service provider).

[0101] By employing the computer-readable storage medium provided in this application, the program stored therein implements the steps of the network video conferencing implementation method when executed, thereby obtaining the beneficial effects of the above-described network video conferencing implementation method.

[0102] The above description, in conjunction with specific preferred embodiments, provides a further detailed explanation of this application and should not be construed as limiting the specific implementation of this application to these descriptions. For those skilled in the art, various simple deductions or substitutions can be made without departing from the concept of this application, and all such modifications or substitutions should be considered within the scope of protection of this application.

Claims

1. A network video conference implementation system, characterized by include: Media servers, including: An edge media server, located in a local area network, is used to receive media data published by user terminals in the same local area network and publish it to the central media server, and to send the requested media data to the user terminal in response to the subscription request of the user terminal in the same local area network. The central media server, located in the wide area network, is used to receive media data published by the edge media server and send media publishing information to the signaling server, and to respond to the acquisition request of the edge media server by sending the requested media data to the edge media server. A signaling server is located in a wide area network (WAN), and no signaling server is set up in the local area network (LAN). The signaling server is used to receive the media publishing information and send it to the edge media server and the user terminal, and in response to the user terminal's request to participate in the conference, send the connection information of the media server to the user terminal. The user terminal is configured to perform connectivity detection on each of the media servers when it receives the connection information of the media server, select an edge media server located in the same LAN for connection, or connect to the central media server when it cannot connect to an edge media server in the same LAN.

2. The network video conference implementation system according to claim 1, wherein, It also includes a scheduling server, which is used to register the started edge media server and the central media server, obtain the connection information of the edge media server and the central media server, and send it to the signaling server.

3. The network video conferencing system according to claim 2, characterized in that, The media server is also configured to, upon receiving a connection request from the user terminal, obtain first verification information sent by the user terminal, calculate second verification information based on a pre-stored key, and perform legality verification on the user terminal based on the first verification information and the second verification information.

4. The network video conferencing system according to claim 3, characterized in that, The signaling server is also used to, when receiving connection information sent by the scheduling server, issue a media server ID and a key to the media server corresponding to the connection information, and in response to the user terminal's request to participate in the conference, calculate the first verification information based on the key and send it to the user terminal.

5. The network video conferencing system according to claim 4, characterized in that, In response to the user terminal's request to participate in the conference, the signaling server obtains user terminal information and conference information from the request, calculates the first verification information based on the user terminal information, the conference information, the media server ID, and the key, and sends it to the user terminal. When the media server receives a connection request from the user terminal, it calculates the second verification information based on its own server ID, key, user terminal information, and conference information.

6. The network video conferencing system according to claim 2, characterized in that, The signaling server is also used to select the edge media server with the lowest current busy level through the scheduling server when there are multiple edge media servers in the same local area network as the user terminal that sent the request to participate in the conference, and send the connection information of the selected edge media server to the user terminal.

7. The network video conferencing system according to claim 1, characterized in that, When the edge media server receives a subscription request from a first user terminal in the same local area network, if the second user terminal corresponding to the requested media data is located in the same local area network, the server will send the media data of the second user terminal stored in the server to the first user terminal. If the third user terminal corresponding to the requested media data is not located in the same local area network, the media data of the third user terminal is obtained from the central media server, stored in this server, and sent to the first user terminal.

8. A method for implementing network video conferencing, characterized in that, The network video conferencing system using any one of claims 1 to 7, the method comprising: In response to a user terminal's request to participate in a conference, the signaling server sends the connection information of the media server to the user terminal. When the user terminal receives the connection information of the media server, it performs connectivity detection on each of the media servers, selects an edge media server located in the same local area network for connection, or connects to the central media server when it cannot connect to an edge media server in the same local area network. The edge media server receives media data published by user terminals in the same local area network and sends it to the central media server; The central media server receives media data published by the edge media server and sends media publishing information to the signaling server; The signaling server receives the media publishing information and sends it to the edge media server and the user terminal; In response to a subscription request from a user terminal on the same local area network, the edge media server sends the requested media data, either stored on the server or obtained from the central media server, to the user terminal.

9. A network video conferencing device, characterized in that, include: processor; A memory in which executable instructions of the processor are stored; The processor is configured to execute the steps of the network video conferencing implementation method of claim 8 by executing the executable instructions.

10. A computer-readable storage medium for storing a program, characterized in that, When the program is executed by the processor, it implements the steps of the network video conferencing implementation method of claim 8.