Detailed Description
Specific embodiments of the present disclosure are described in detail below with reference to the accompanying drawings. It should be understood that the detailed description and specific examples, while indicating and illustrating the disclosure, are not intended to limit the disclosure.
As used in this disclosure, the term "and/or" includes any and all combinations of one or more of the associated listed items.
The terminology used in the present disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used in this disclosure, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
When the terms "comprises" and/or "comprising," "including," are used in this disclosure, they specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used in this disclosure have the same meaning as commonly understood by one of ordinary skill in the art. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and the present disclosure, and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The application scenarios of the communication system and the communication method provided by the embodiment of the disclosure include, but are not limited to, video conference, video monitoring and SIP terminal access scenarios of a call center, and support terminals of various SIP types to access through audio or video.
The disclosed embodiments provide a communication system that can be applied to SIP communication services. Fig. 1 is a schematic architecture diagram of a communication system for SIP communication according to an embodiment of the disclosure, which mainly includes:
a target terminal 10 for sending a first initial session protocol SIP message to a first mediating server;
a target SIP server 11 for sending a second SIP message to the first mediating server;
A first mediating server 12, configured to receive the first SIP message from a target terminal, parse the first SIP message to determine a target SIP server, and forward the first SIP message to the target SIP server; and receiving the second SIP message from the target SIP server, analyzing the second SIP message to determine the target terminal, and forwarding the second SIP message to the target terminal;
A second mediating server 13, configured to serve as a standby server of the first mediating server.
The first intermediary server 12 and the second intermediary server 13 form a dual Hot Standby (Hot Standby) mechanism, and the dual Hot Standby is a solution applied to the server, and is normally in a working state, and the slave is in a monitoring state, once the slave finds that the host is abnormal, the slave replaces the host in a short time, and the function of the host is completely realized.
Wherein the first mediating server 12 mainly performs the following processes including, but not limited to:
(1) As an SIP message entry, for transparent transmission of SIP messages, other network elements responsible for processing SIP messages have no perception to the first mediating server 12;
(2) The system has a lightweight SIP protocol stack, and can complete the distribution and load balancing of the SIP message according to a load balancing algorithm;
(3) The system has no state distinction, and has two modes of main mode and standby mode, in which the forwarding of SIP message is not affected after the main mode and standby mode are switched, and in which the forwarding of SIP message is not affected after restarting.
The target SIP server is any one server in a SIP server set of the network side where the first intermediary server is in butt joint.
The target SIP server mainly performs the following processing including but not limited to:
(1) As a SIP message server, the SIP message server has a complete SIP protocol stack and can analyze the SIP request message;
(2) Registration type messages such as registration, cancellation, registration keep-alive, registration authentication, registration preemption and the like initiated by the terminal can be processed;
(3) The method can process call type messages such as calls initiated by the terminal, regular numbers, special service number calls, routing addressing and the like.
In the embodiment of the disclosure, a networking mode of 1+1 (HA) +N is adopted, two intermediate servers are used as a master and a slave, and then N (N is an integer larger than 1) SIP servers are used for processing SIP signaling, so that a user is supported to access through an SIP protocol, and stable and reliable access service of a video conference is provided for the user. When part of the SIP servers are failed or a certain SIP intermediary server is failed, the SIP access system can still continue to work normally, stable real-time communication including voice, video, message and the like can be established between different terminal devices, and the system can be used for call control and call management.
The embodiment of the present disclosure also provides a communication method, where the communication method is applied to the first intermediary server 11 described in the above system architecture, a virtual IP address is preconfigured in the first intermediary server 11, and the target terminal and the target SIP server respectively configure the virtual IP address to send the SIP message to the first intermediary server corresponding to the virtual IP address for forwarding. Wherein a Virtual IP address, also known as Virtual IP, VIP, is an IP address that is not connected to a particular computer or Network Interface Card (NIC) in a computer, all packets sent to this VIP address are still over the real network interface.
Fig. 2 is a schematic flow chart of a communication method executed by the first mediating server, which mainly includes the following steps:
Step 201, receiving a first initial session protocol SIP message from a target terminal, parsing the first SIP message to determine a target SIP server, and forwarding the first SIP message to the target SIP server.
In some embodiments, said parsing the first SIP message determines a destination SIP server, comprising:
analyzing the first SIP message to determine the type of the first SIP message, and distributing the target SIP server to the target terminal according to the type of the first SIP message.
In some embodiments, the assigning the destination SIP server to the destination terminal according to the type of the first SIP message includes:
If the type of the first SIP message is a registration type message and is a new SIP registration request message, the target SIP server is allocated to the target terminal again;
In the case that the type of the first SIP message is a registration-type message and is not a new SIP registration request message, resolving to obtain the content of a first target field of the first SIP message, and determining the target server based on the content of the first target field;
under the condition that the type of the first SIP message is an SIP call type message initiated by the target terminal and a new SIP call access request message, the target SIP server is allocated to the target terminal again;
obtaining the content of a second target field of the first SIP message under the condition that the type of the first SIP message is an SIP call type message initiated by the target terminal and is not a new SIP call access request message, and determining the target SIP server based on the content of the second target field;
and under the condition that the type of the first SIP message is a call type message for calling the target terminal, obtaining the content of a second target field of the first SIP message, and determining the target SIP server based on the content of the second target field.
The manner of analyzing the first SIP message to determine the destination SIP server is different for each stage in the SIP communication process, and the processing procedure of each stage will be described below.
The method comprises the steps of registering, calling up the SIP initiated by the terminal to the server and calling down the SIP initiated by the server to the terminal.
The SIP message in the registration stage is called a registration type message, the SIP message in the SIP calling stage is called a terminal initiated SIP call type message, and the SIP message in the SIP calling stage is called a call type message of a calling terminal.
First, registration phase
In some embodiments, said parsing the first SIP message determines a destination server, comprising:
and when the first SIP message is analyzed to determine that the first SIP message belongs to a registration type message and is a new SIP registration request message, the target SIP server is allocated to the target terminal again.
In some embodiments, the allocating the target SIP server to the target terminal includes:
And analyzing to obtain the unique identifier of the target terminal included in the first SIP message, and selecting the target SIP server from the SIP server set based on the unique identifier of the target terminal through a load balancing algorithm.
In an exemplary embodiment, after receiving a first SIP message from a target terminal, a first mediating server parses the first SIP message to determine that the first SIP message is an initial registration request, that is, a new SIP registration request message belonging to a registration class message, uses a calling number in the first SIP message as a unique identifier of the target terminal, uses the calling number as an input parameter of a load balancing algorithm, obtains an address of the target SIP server output by the load balancing algorithm, and sends the first SIP message to the target SIP server according to the address.
According to the load balancing algorithm, points on the Hash (Hash) ring are equally divided by the SIP servers in the normal running state, so that the results of different SIP messages after load balancing can be evenly directed to the SIP servers in the normal running state.
According to the characteristics of the load balancing algorithm, the output corresponding to the same input parameter is always the same, so that the same unique identifier (such as a calling number) of the target terminal is used as the input parameter of the load balancing algorithm, the selected target SIP server is the same SIP server, the load balancing is ensured, and meanwhile, the registration type SIP messages of the same terminal can be distributed to the same SIP server for processing, and the consistency of the SIP session is ensured.
It should be noted that, the unique identifier of the target terminal may be other parameters besides the calling number, and only the unique identifier of the target terminal may be used as an input parameter of the load balancing algorithm.
In some embodiments, said parsing the first SIP message determines a destination server, comprising:
And analyzing the first SIP message to determine that the first SIP message belongs to a registration type message and is not a new SIP registration request message, analyzing and obtaining the content of a first target field of the first SIP message, and determining the target server based on the content of the first target field.
In an exemplary embodiment, the first target field is a Nonce field of an Authorization header field of the first SIP message.
In an exemplary embodiment, referring to the normal flow diagram of SIP communication shown in fig. 3, when a target terminal REGISTERs with a server, a first intermediary server receives a new initial registration request (REGISTER) message sent by the target terminal on a user side, and distributes the new initial registration request (REGISTER) message to a target SIP server on a network side according to a calling number in the message, where the target SIP server embeds address information of the target terminal in a private field XNEXTHOP, and at the same time, the target SIP server carries a WWW-Authenticate header field in a response, and embeds address information of the SIP server in a Nonce field of the header field.
When the terminal carries out the subsequent REGISTER message, the first intermediary server distributes the message to the corresponding target SIP server for processing directly according to the Nonce field of the Authorization header field in the terminal registration type message.
Second, SIP callback phase
In some embodiments, said parsing the first SIP message determines a destination SIP server, comprising:
And when the first SIP message is analyzed to determine that the first SIP message belongs to the SIP call type message initiated by the target terminal and the new SIP call access request message, the target SIP server is allocated to the target terminal again.
In some embodiments, the allocating the target SIP server to the target terminal includes:
And analyzing to obtain the unique identifier of the target terminal included in the first SIP message, and selecting the target SIP server from the SIP server set based on the unique identifier of the target terminal through a load balancing algorithm.
In an exemplary embodiment, after receiving a first SIP message from a target terminal, a first mediating server parses the first SIP message to determine that the first SIP message is a new SIP call access request message, that is, belongs to a SIP call class message and is a new SIP call access request message, uses a calling number in the first SIP message as a unique identifier of the target terminal, uses the calling number as an input parameter of a load balancing algorithm, obtains an address of a target SIP server output by the load balancing algorithm, and sends the first SIP message to the target SIP server according to the address.
According to the load balancing algorithm, points on the Hash (Hash) ring are equally divided by the SIP servers in the normal running state, so that the results of different SIP messages after load balancing can be evenly directed to the SIP servers in the normal running state.
According to the characteristics of the load balancing algorithm, the output corresponding to the same input parameter is always the same, so that the same unique identifier (such as a calling number) of the target terminal is used as the input parameter of the load balancing algorithm, the selected target SIP server is the same SIP server, the load balancing is ensured, and meanwhile, the registration type SIP messages of the same terminal can be distributed to the same SIP server for processing, and the consistency of the SIP session is ensured.
It should be noted that, the unique identifier of the target terminal may be other parameters besides the calling number, and only the unique identifier of the target terminal may be used as an input parameter of the load balancing algorithm.
In some embodiments, said parsing the first SIP message determines a destination SIP server, comprising:
And analyzing the first SIP message to determine that the first SIP message belongs to the SIP call type message initiated by the target terminal and is not a new SIP call access request message, obtaining the content of a second target field of the first SIP message, and determining the target SIP server based on the content of the second target field.
In an exemplary embodiment, the second destination field is a Local tag (Local tag) field of a To header field of the first SIP message. The Local tag is a random substring generated by the SIP server and may include a nonce of the Register authentication message, a From tag of the requester message, and a To tag of the responder message.
In an exemplary embodiment, referring To the normal flow schematic diagram of SIP communication shown in fig. 3, when a target terminal initiates a SIP call To a server, a first mediation server receives a new INVITE message sent by a target terminal on a user side, distributes the INVITE message To a target SIP server on a network side according To a calling number, and the target SIP server embeds own address information into a To tag as a Local tag To be carried in a response. When the target terminal makes a subsequent request or response in the same session, the first intermediary server obtains Local tag fields From the To header field and the From header field respectively, and distributes the response or request message To the corresponding target SIP server for processing.
Third, SIP outbound phase
In some embodiments, said parsing the first SIP message determines a destination SIP server, comprising:
And under the condition that the first SIP message is analyzed to determine that the first SIP message belongs to a call type message calling the target terminal, obtaining the content of a second target field of the first SIP message, and determining the target SIP server based on the content of the second target field.
In an exemplary embodiment, the second destination field is a Local tag (Local tag) field in a From header field of the first SIP message.
In an exemplary embodiment, referring to the normal flow schematic diagram of SIP communication shown in fig. 3, when a server initiates a call to a target terminal, the SIP server embeds address information of the target terminal in the private field XNEXTHOP, and embeds own address information in the tag field of the From header field, and the first intermediary server distributes the address information to the corresponding target terminal according to the address information in XNEXTHOP. When the target terminal performs subsequent response or request in the same session, the first intermediary server obtains the address of the target SIP server From the Local tag fields obtained in the From header field and the To header field respectively, and distributes the response or request message To the corresponding target SIP server for processing.
In some embodiments, for a load balancing algorithm used during a registration phase and a SIP call-up phase, each SIP server in a SIP server set used in the load balancing algorithm is in a normal working state, so as to ensure that SIP messages distributed to the SIP servers can be processed normally. Based on the above, the method further comprises removing any SIP server from the SIP server set if any SIP server fault for establishing communication connection is detected, and adding any SIP server to the SIP server set if any SIP server fault release is detected.
Step 202, receiving a second SIP message from the target SIP server, analyzing the second SIP message to determine the target terminal, and forwarding the second SIP message to the target terminal.
In some embodiments, in a case that the parsing the second SIP message determines that the second SIP message belongs to a specified type of message, obtaining content of a third target field of the second SIP message, and determining the target terminal based on the content of the third target field;
wherein the specified type of message includes one of:
A registration class message;
The call message initiated by the target terminal;
and calling the call type message of the target terminal.
The manner of analyzing the second SIP message to determine the target terminal is also different for each stage in the SIP communication process, and the processing procedure of each stage will be described below.
First, registration phase
In some embodiments, said parsing the second SIP message to determine the target terminal includes:
and under the condition that the second SIP message is analyzed to determine that the second SIP message belongs to the registration type message, obtaining the content of a third target field of the second SIP message, and determining the target terminal based on the content of the third target field.
In an exemplary embodiment, the third target field is XNEXTHOP fields in the header field private field.
In an exemplary embodiment, referring to the normal flow diagram of SIP communication shown in fig. 3, the destination SIP server embeds the address information of the destination terminal in the private field XNEXTHOP, while the destination SIP server carries a WWW-Authenticate header field in the response, and embeds the address information of the SIP server in the Nonce field of the header field.
Second, SIP callback phase
In some embodiments, said parsing the second SIP message to determine the target terminal includes:
And under the condition that the second SIP message is analyzed to determine that the second SIP message belongs to the call type message initiated by the target terminal, obtaining the content of a third target field of the second SIP message, and determining the target terminal based on the content of the third target field.
In an exemplary embodiment, the third target field is XNEXTHOP fields in the header field private field.
Third, SIP outbound phase
In some embodiments, said parsing the second SIP message to determine the target terminal includes:
and under the condition that the second SIP message is analyzed to determine that the second SIP message belongs to a call type message calling the target terminal, obtaining the content of a third target field of the second SIP message, and determining the target terminal based on the content of the third target field.
In an exemplary embodiment, the third target field is XNEXTHOP fields in the header field private field.
The process of the target SIP server sending the second SIP message in each stage in the SIP communication process may refer to the normal flow schematic diagram of SIP communication shown in fig. 3, which is not described herein again.
In some embodiments, the method further comprises:
under the condition that the target SIP server fails, a new target SIP server is redetermined, and a third SIP message of the current SIP session newly acquired by the target terminal is sent to the new target SIP server; and querying cached historical information of the current SIP session of the target terminal through the new target SIP server and returning a response to the third SIP message according to the historical information.
In an exemplary embodiment, when a part of SIP servers fail, the failed SIP server does not send a keep-alive message to the first intermediate server, and after the first intermediate server recognizes that the corresponding SIP server node fails, the load balancing algorithm is adjusted, so that the SIP message after that is not sent to the failed SIP server any more, and is converted into a SIP server to be distributed to other normal states for processing.
In some embodiments, the method further comprises:
And under the condition that the target SIP server is in fault recovery, sending a newly acquired fourth SIP message of the current SIP session of the target terminal to the target SIP server, inquiring cached historical information of the current SIP session of the target terminal through the target SIP server, and returning a response to the fourth SIP message according to the historical information.
In an exemplary embodiment, referring to a schematic process flow diagram of the SIP server shown in fig. 4 when the SIP server corresponding to the Local tag is down, the first mediating server forwards the fault to the rest of SIP servers through a load balancing algorithm. Because of carrying Local tag, the SIP message at this time is a new request in a strange session for the newly allocated SIP server, and the newly allocated SIP server generates a corresponding correct response message according to the history information of the session queried in the Redis cache database.
When the SIP server is in fault recovery, the previous session information can be recovered from the Redis cache database, the SIP server continues to send keep-alive messages to the first intermediary server, the first intermediary server recognizes that the corresponding SIP server node is normal, adjusts a load balancing algorithm, continues to distribute the messages to the SIP server which is recovered to be normal, and after the SIP server receives the messages, the SIP server continues to process according to the previous normal flow steps.
In some embodiments, the method further comprises:
Triggering a primary-backup switching mechanism under the condition that the first intermediary server fails, and transmitting a virtual network address of the first intermediary server to a second intermediary server through the primary-backup switching mechanism so as to switch the second intermediary server into a primary server and switch the first intermediary server into a backup server;
And under the condition that the first intermediary server is recovered from faults, triggering the main-standby switching mechanism, and acquiring the virtual network address of the second intermediary server through the main-standby switching mechanism to configure so as to switch the first intermediary server into a main server and switch the second intermediary server into a standby server.
In an exemplary embodiment, fig. 5 is a schematic flow chart of a processing procedure when an intermediary server fails, when a first intermediary server fails, a primary-backup switching mechanism of a dual-machine hot-standby component is automatically triggered, the dual-machine hot-standby component floats a virtual IP address onto a standby second intermediary server, the second intermediary server becomes primary, and the failed first intermediary server becomes standby. And after the first intermediary server which is in failure is repaired, the standby state is kept, the second switching is waited, and the distribution of the SIP information is not affected.
The embodiment of the disclosure also provides a communication method applied to the SIP server.
Fig. 6 is a flowchart of a method for performing communication by using a SIP server according to an embodiment of the disclosure, where the method includes the following steps:
step 601 receives a first SIP message forwarded by a first mediating server from a target terminal.
In some embodiments, a SIP server sends keep-alive messages to a first mediating server to maintain a communication connection with the first mediating server.
Step 602, sending a second SIP message for the target terminal to the first mediating server to forward to the target terminal through the first mediating server.
In some embodiments, before said sending the second SIP message for the target terminal to the first mediating server, the method further comprises at least one of the following steps:
Writing an address of the SIP server in a first destination field of the second SIP message;
writing an address of the SIP server in a second destination field of the second SIP message;
And writing the address of the target terminal in a third target field of the second SIP message.
In some embodiments, the method further comprises:
inquiring and obtaining historical information of the SIP session of the target terminal from a cache database;
responding to the first SIP message according to the history information.
In the embodiment of the disclosure, a first intermediate server is set, a first SIP message from a target terminal is received through the first intermediate server, the first SIP message is analyzed to determine a target SIP server, the first SIP message is forwarded to the target SIP server, a second SIP message from the target SIP server is received, the second SIP message is analyzed to determine the target terminal, and the second SIP message is forwarded to the target terminal, so that corresponding SIP servers can be distributed to the terminal through the first intermediate server, a basis is provided for load balancing of a plurality of connected SIP servers, and possibility is provided for improving stability and reliability of SIP access services.
In the related art, a few SIP access schemes distribute SIP messages by adopting an NGINX proxy server, which requires an additional state recording mechanism to record the state of the SIP message, so as to ensure the consistency of SIP transactions. This results in the need for a NGNIX proxy server to cooperate with a state record mechanism to distribute SIP messages, which itself still presents a single point of risk and is not truly highly reliable. When the NGINX server fails, after restarting NGINX, the SIP message in the non-initial request state cannot be forwarded according to the correct SIP server to ensure the consistency of the SIP transaction. The disaster recovery processing capability is lacking, the single-point SIP access scheme or the scheme relying on NGINX is needed to be manually recovered once the single-point SIP server or the NGINX fails, so that the complete video conference access service cannot be continuously provided for the user, and a large amount of system construction and human operation and maintenance resources are needed. The single-point SIP access scheme lacks load balancing capability, and can not guarantee stable operation of the system under the condition of large traffic. When the system is overloaded, it may not respond to the request of the terminal in time. The NGNIX proxy server adopts a 4-layer proxy mode, namely based on the TCP/UDP protocol, but NGINIX does not know the specific content of the request, can not realize stateless forwarding, and needs to cooperate with a state caching mechanism, so that the mechanism of high reliability of master-slave switching can not be realized.
The first intermediate server and the second intermediate server in the embodiment of the present disclosure belong to stateless forwarding, and the state of the SIP session does not need to be recorded depending on a state recording mechanism, so that stateless load balancing can be implemented, and forwarding is directly performed by analyzing SIP messages.
In the embodiment of the disclosure, for accessing the SIP type terminal in the video conference, the high bandwidth of the 5G communication technology development and network transmission is relied on, so that more stable and reliable video conference access experience is provided for the user accessing the SIP, the robustness and the service bearing capacity of the video conference system can be improved, and the SIP access performance is improved. The embodiment of the disclosure realizes quick response when the SIP server fails, and avoids the situation that a user cannot enter a meeting or cannot enter the meeting after multiple times of meeting failures caused by single-point failure. Meanwhile, the embodiment of the disclosure can effectively relieve the situations of slow response and non-response to the terminal caused by overload to the single-point SIP server when high concurrency occurs through load balancing to the SIP message.
In addition, the embodiment of the disclosure can realize a hot backup deployment mode independent of cache, realize high reliability, and can select legal load balancing algorithm and hot backup method according to different service scenes and safety requirements only by ensuring that an intermediate server for distributing the SIP message is in a stateless design, so as to realize high-reliability SIP access.
The above steps of the methods are divided, for clarity of description, and may be combined into one step or split into multiple steps when implemented, so long as they include the same logic relationship, and all the steps are within the scope of the disclosure, and adding insignificant modification to the algorithm or the process or introducing insignificant design, but not changing the core design of the algorithm and the process, are within the scope of the disclosure.
In the embodiments of the present disclosure, a communication apparatus is provided, and the implementation of the apparatus may be referred to in the related description of the first intermediary server in the method embodiment, which is not repeated herein. Fig. 7 is a schematic structural diagram of the device, mainly including:
a first processing module 701, configured to receive a first initial session protocol SIP message from a target terminal, parse the first SIP message to determine a target SIP server, and forward the first SIP message to the target SIP server;
And a second processing module 702, configured to receive a second SIP message from the target SIP server, parse the second SIP message to determine the target terminal, and forward the second SIP message to the target terminal.
In the embodiments of the present disclosure, a communication apparatus is provided, and the implementation of the apparatus may be referred to in the related description of the SIP server of the method embodiment, which is not repeated herein. Fig. 8 is a schematic structural diagram of the device, mainly including:
A receiving module 801, configured to receive a first SIP message forwarded by a first mediation server from a target terminal;
a sending module 802, configured to send, to the first intermediary server, a second SIP message for the target terminal, so as to forward, through the first intermediary server, the second SIP message to the target terminal.
The functions or modules included in the apparatus provided by the embodiments of the present disclosure may be used to perform the methods described in the method embodiments, and specific implementation and technical effects thereof may refer to the descriptions of the method embodiments above, which are not repeated herein for brevity.
In this embodiment, each module is a logic module, and in practical application, one logic unit may be one physical unit, or may be a part of one physical unit, or may be implemented by a combination of a plurality of physical units. In addition, in order to highlight the innovative part of the present disclosure, elements that are not so close to solving the technical problem presented in the present disclosure are not introduced in the present embodiment, but it does not indicate that other elements are not present in the present embodiment.
Referring to fig. 9, an embodiment of the present disclosure provides an electronic device including:
at least one processor 901;
A memory 902 having at least one program stored thereon which, when executed by the at least one processor, causes the at least one processor to perform the method described above;
at least one I/O interface 903, coupled between the processor and the memory, is configured to enable information interaction of the processor with the memory.
The processor 901 is a device with data processing capability, including but not limited to a Central Processing Unit (CPU), the memory 902 is a device with data storage capability, including but not limited to a random access memory (RAM, more specifically SDRAM, DDR, etc.), a Read Only Memory (ROM), an Electrically Erasable Programmable Read Only Memory (EEPROM), a FLASH memory (FLASH), and an I/O interface 903 is connected between the processor 901 and the memory 902, so as to enable information interaction between the processor 901 and the memory 902, including but not limited to a data Bus (Bus), etc.
In some embodiments, processor 901, memory 902, and I/O interface 903 are connected to each other via a bus, which in turn connects to other components of the computing device.
The present embodiment also provides a computer readable medium, on which a computer program is stored, where the program when executed by a processor implements the method provided in the present embodiment, and specific steps of the method are not described herein in detail to avoid repetitive description.
Those of ordinary skill in the art will appreciate that all or some of the steps in the methods, systems, functional modules/units in the apparatus as applied above may be implemented as software, firmware, hardware, and suitable combinations thereof. In a hardware implementation, the division between functional modules/units mentioned in the above description does not necessarily correspond to the division of physical components, for example, one physical component may have a plurality of functions, or one function or step may be cooperatively performed by several physical components. Some or all of the physical components may be implemented as software executed by a processor, such as a central processing unit, digital signal processor, or microprocessor, or as hardware, or as an integrated circuit, such as an application specific integrated circuit. Such software may be distributed on computer readable media, which may include computer storage media (or non-transitory media) and communication media (or transitory media). The term computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data, as known to those skilled in the art. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital Versatile Disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computer. Furthermore, as is well known to those of ordinary skill in the art, communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
It should be noted that, in this document, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
Those skilled in the art will appreciate that while some embodiments described herein include some features but not others included in other embodiments, combinations of features of different embodiments are meant to be within the scope of the embodiments and form different embodiments.
It is to be understood that the above embodiments are merely exemplary embodiments employed to illustrate the principles of the present disclosure, however, the present disclosure is not limited thereto. Various modifications and improvements may be made by those skilled in the art without departing from the spirit and substance of the disclosure, and are also considered to be within the scope of the disclosure.