CN108881774B - Calling system and method for multimedia network call - Google Patents

Calling system and method for multimedia network call Download PDF

Info

Publication number
CN108881774B
CN108881774B CN201810432303.9A CN201810432303A CN108881774B CN 108881774 B CN108881774 B CN 108881774B CN 201810432303 A CN201810432303 A CN 201810432303A CN 108881774 B CN108881774 B CN 108881774B
Authority
CN
China
Prior art keywords
signaling message
calling
client
server
call
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.)
Active
Application number
CN201810432303.9A
Other languages
Chinese (zh)
Other versions
CN108881774A (en
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201810432303.9A priority Critical patent/CN108881774B/en
Publication of CN108881774A publication Critical patent/CN108881774A/en
Application granted granted Critical
Publication of CN108881774B publication Critical patent/CN108881774B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols

Abstract

The embodiment of the invention provides a calling system and a method for multimedia network communication, wherein the system comprises the following steps: the system comprises a calling client, a called client, an SIP server and an MQTT server; the calling client sends and receives video call related signaling messages with the called client through the SIP server and sends important signaling messages in the preset video call related signaling messages to the MQTT server; the MQTT server receives and stores the important signaling message sent by the calling client, and sends the important signaling message sent by the calling client to the called client; and the called client receives the video call related signaling message sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client.

Description

Calling system and method for multimedia network call
Technical Field
The present invention relates to the field of network communication technologies, and in particular, to a multimedia network call system and method.
Background
With the development of technology, multimedia network calls such as audio or video calls via the internet have played an important role in people's lives, and more people will choose to make audio or video calls via the internet.
When the internet carries out audio or video call, calling is firstly carried out, and after the calling is successful, the calling party and the called party establish point-to-point audio or video call.
At present, a system for calling a multimedia network call is shown in fig. 1, and mainly includes: a calling client, a called client and a Session Initiation Protocol (SIP) server. The process of making a call mainly comprises the following steps:
the method comprises the steps that a calling client sends video call related signaling information to an SIP, an SIP server sends the signaling information to a corresponding called client according to a calling client identification and a called client identification carried in the received signaling information, and the called client receives the signaling information and establishes video communication with the calling client.
In the prior art, a User Datagram Protocol (UDP) is generally used for signaling message transmission, and since the UDP is a non-connection oriented Protocol, it only sends out a Datagram that an application program transmits to an IP layer, and does not need to establish a connection between each User client and a server, and there is no mechanism such as timeout retransmission. Therefore, the resource consumption is less and the transmission speed is fast. However, the UDP transmission cannot guarantee whether the signaling message reaches the called party, and in order to solve this problem, the UDP transmission may set a retry to send the signaling message with a timeout, but when the network is poor, the retransmitted signaling message may also fail, and thus the reliability of the signaling message transmission using the UDP protocol is not high.
Disclosure of Invention
The embodiment of the invention aims to provide a calling system and a calling method for multimedia network communication, so as to improve the reliability of transmitting a signaling message by using a UDP protocol. The specific technical scheme is as follows:
in a first aspect, an embodiment of the present invention provides a multimedia network call system, including: the system comprises a calling client, a called client, an SIP server and an MQTT server;
the calling client sends and receives video call related signaling messages with the called client through the SIP server, and sends important signaling messages in the preset video call related signaling messages to the MQTT server;
the MQTT server receives and stores the important signaling message sent by the calling client, and sends the important signaling message sent by the calling client to the called client;
and the called client receives the video call related signaling message sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client.
Optionally, before sending and receiving signaling messages related to video calls with the called client through the SIP server, the calling client sends a request for allocating a call theme to the MQTT server and receives a call theme returned by the MQTT server; and sending a call subject notification message to the called client through the SIP server; adding the call theme in each important signaling message sent to the MQTT server;
the MQTT server receives a call theme distribution request sent by a calling client and distributes a call theme for the call;
the called client obtains the calling subject from the calling subject notification message after receiving the calling subject notification message through the SIP server; sending a subscription request containing the call topic to the MQTT server; and receiving an important signaling message which is sent by the MQTT server and contains the call subject.
Optionally, the called client further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
Optionally, the calling client further receives a signaling message generated by the SIP server and sent by the SIP server;
the SIP server further stores the calling subject, adds the calling subject in the important signaling message generated by the SIP server and sends the calling subject to the MQTT server;
the called client further saves the calling theme, adds the calling theme in an important signaling message generated by the called client and sends the calling theme to an MQTT server;
the calling client further sends a subscription request to the MQTT server;
and the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
Optionally, the calling client further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
In a second aspect, an embodiment of the present invention provides a multimedia network call method, which is applied to the multimedia network call system according to the first aspect of the present invention, and includes:
the system comprises a calling client, an MQTT server and a SIP server, wherein the calling client sends and receives video call related signaling messages with a called client through the SIP server and sends important signaling messages in the preset video call related signaling messages to the MQTT server;
the MQTT server receives and stores the important signaling message sent by the calling client, and sends the important signaling message sent by the calling client to the called client;
and the called client receives the video call related information sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client.
Optionally, before sending and receiving signaling messages related to video calls with the called client through the SIP server, the calling client sends a request for allocating a call theme to the MQTT server and receives a call theme returned by the MQTT server; and sending a subject notification message to the called client through the SIP server; adding the call theme in each important signaling message sent to the MQTT server;
the MQTT server receives a call theme distribution request sent by a calling client and distributes a call theme for the call;
the called client obtains the calling subject from the subject notification message after receiving the subject notification message through the SIP server; sending a subscription request containing the call topic to the MQTT server; and receiving an important signaling message which is sent by the MQTT server and contains the call subject.
Optionally, the called client further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
Optionally, the calling client further receives a signaling message generated by the SIP server and sent by the SIP server;
the SIP server further stores the calling subject, adds the calling subject in the important signaling message generated by the SIP server and sends the calling subject to the MQTT server;
the called client further saves the calling theme, adds the calling theme in an important signaling message generated by the called client and sends the calling theme to an MQTT server;
the calling client further sends a subscription request to the MQTT server;
and the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
Optionally, the calling client further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
In a third aspect, an embodiment of the present invention provides another multimedia network call system, including: the system comprises a calling client, a called client, an SIP server and an MQTT server;
the calling client sends and receives the video call related signaling message with the called client through the SIP server;
the SIP server sends the video call related signaling message received from the calling client to the called client, and sends the important signaling message in the preset video call related signaling message to the MQTT server;
the MQTT server receives and stores the important signaling message sent by the SIP server and sends the important signaling message sent by the SIP server to the called client;
and the called client receives the video call related information sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client.
Optionally, after receiving the call request signaling information sent by the calling client, the SIP server sends a request for allocating a call theme to the MQTT server, and receives a call theme returned by the MQTT server; sending a theme notification message to a called client; adding the call theme in each important signaling message sent to the MQTT server;
the MQTT server receives a call theme distribution request sent by the SIP server and distributes a call theme for the call;
the called client receives the theme notification message sent by the SIP server and then obtains the call theme from the theme notification message; sending a subscription request containing the call topic to the MQTT server; and receiving an important signaling message which is sent by the MQTT server and contains the call subject.
Optionally, the called client further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
Optionally, the calling client further receives a signaling message generated by the SIP server and sent by the SIP server;
the SIP server further adds a calling subject in an important signaling message generated by the SIP server and sends the calling subject to the MQTT server;
the called client further saves the calling theme, adds the calling theme in an important signaling message generated by the called client and sends the calling theme to an MQTT server;
the calling client further sends a subscription request to the MQTT server;
and the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
Optionally, the calling client further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
In a fourth aspect, an embodiment of the present invention provides a multimedia network call method, which is applied in the multimedia network call system according to the third aspect of the embodiment of the present invention,
the calling client sends and receives the video call related signaling message with the called client through the SIP server;
the SIP server sends the video call related signaling message received from the calling client to the called client, and sends the important signaling message in the preset video call related signaling message to the MQTT server;
the MQTT server receives and stores the important signaling message sent by the SIP server and sends the important signaling message sent by the SIP server to the called client;
and the called client receives the video call related information sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client.
Optionally, after receiving the call request signaling information sent by the calling client, the SIP server sends a request for allocating a call theme to the MQTT server, and receives a call theme returned by the MQTT server; sending a theme notification message to a called client; adding the call theme in each important signaling message sent to the MQTT server;
the MQTT server receives a call theme distribution request sent by a calling client and distributes a call theme for the call;
the called client receives the theme notification message sent by the SIP server and then obtains the call theme from the theme notification message; sending a subscription request containing the call topic to the MQTT server; and receiving an important signaling message which is sent by the MQTT server and contains the call subject.
Optionally, the called client further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
Optionally, the calling client further receives a signaling message generated by the SIP server and sent by the SIP server;
the SIP server further adds a calling subject in an important signaling message generated by the SIP server and sends the calling subject to the MQTT server;
the called client further saves the calling theme, adds the calling theme in an important signaling message generated by the called client and sends the calling theme to an MQTT server;
the calling client further sends a subscription request to the MQTT server;
and the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
Optionally, the calling client further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
In another aspect of the present invention, there is also provided an electronic device, including a processor, a communication interface, a memory and a communication bus, where the processor, the communication interface, and the memory complete communication with each other through the communication bus;
a memory for storing a computer program;
and the processor is used for realizing any one of the calling methods of the multimedia network conversation when executing the program stored in the memory.
In yet another aspect of the present invention, there is also provided a computer-readable storage medium having stored therein instructions, which when executed on a computer, cause the computer to execute a method for calling a multimedia network session as described in any one of the above.
In another aspect of the present invention, the present invention also provides a computer program product including instructions, which when run on a computer, causes the computer to execute any one of the above-mentioned calling methods for multimedia network calls.
The calling system and method for multimedia network communication provided by the embodiment of the invention add the MQTT server under the condition that the SIP server is already arranged in the existing calling system for multimedia network communication, and are used for receiving and storing the important signaling message sent by the calling client and sending the important signaling message sent by the calling client to the called client. In the embodiment of the invention, the important signaling message is transmitted by using the MQTT protocol while the SIP protocol is used for transmitting the signaling message, and the MQTT server is established based on the TCP protocol, so that the important signaling message can be ensured to be reliably transmitted to the called client, and the reliability of transmitting the signaling message by using the UDP protocol can be improved by the embodiment of the invention.
Of course, it is not necessary for any product or method of practicing the invention to achieve all of the above-described advantages at the same time.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below.
FIG. 1 is a diagram illustrating a system architecture for a call of a prior art multimedia network session;
fig. 2 is a schematic structural diagram of a multimedia network call system according to an embodiment of the present invention;
FIG. 3 is an interactive flow chart of a calling method based on the multimedia network call of FIG. 2;
FIG. 4 is an interaction flow diagram of the calling client obtaining a signaling message generated by the SIP server in the embodiment shown in FIG. 3;
FIG. 5 is a schematic diagram of another call system for multimedia network calls according to an embodiment of the present invention;
FIG. 6 is an interactive flow chart of a calling method based on the multimedia network call of FIG. 5;
fig. 7 is an interaction flow diagram of the calling client obtaining the signaling message generated by the SIP server in the embodiment shown in fig. 5.
Detailed Description
In order to make those skilled in the art better understand the technical solution of the present invention, the technical solution in the embodiment of the present invention will be clearly and completely described below with reference to the drawings in the embodiment of the present invention.
In order to solve the problem of low reliability of signaling message transmission by using a UDP protocol, the embodiment of the invention adds an MQTT server established based on a TCP protocol in a calling system of multimedia network communication in the prior art, and ensures that important signaling messages are transmitted to a called client.
It can be understood that, in the existing call system of multimedia network call, since the SIP server uses the UDP protocol to transmit the signaling message, it cannot be guaranteed whether the signaling message reaches the called client, and the retry transmission cannot guarantee whether the signaling message will be transmitted to the called client if the network environment is different at different time intervals. TCP is a connection-oriented protocol, and each user client that uses TCP to transport signaling messages needs to establish a long link with the server. If the signaling message is transmitted overtime, the overtime signaling message is retransmitted, and repeated signaling messages are discarded by using TCP transmission, and the signaling message is checked, so that the signaling message is transmitted from the calling client to the called client, and the TCP transmission is more reliable. The MQTT protocol is based on a TCP protocol to realize network connection, so that in the embodiment of the invention, an MQTT server is added in the existing calling system of multimedia network communication to ensure that important signaling messages are transmitted to a called client.
Specifically, the embodiment of the present invention provides two multimedia network call systems and multimedia network call methods, which are described in detail below.
First, a first multimedia network call system according to an embodiment of the present invention will be described.
As shown in fig. 2, a calling system for multimedia network call provided in the embodiment of the present invention includes:
the calling client 201 sends and receives video call related signaling messages with the called client 203 through the SIP server 204, and sends important signaling messages in the preset video call related signaling messages to the MQTT server 202;
the MQTT server 202 receives and stores the important signaling message sent by the calling client 201, and sends the important signaling message sent by the calling client 201 to the called client 203;
the called client 203 receives the video call related signaling message sent by the SIP server 204 and the important signaling message sent by the MQTT server 202, and establishes video communication with the calling client 201.
In this embodiment, before the calling client sends the important signaling message to the MQTT, the important signaling message and the non-important signaling message are distinguished in the video call related signaling message according to the predefined definition. For example, signaling messages for initiating a call, hanging up a call, answering a call, and rejecting a call can be understood as important signaling messages; a signaling message used as a heartbeat packet as a non-important signaling message. And sending the important signaling message to an MQTT server, and sending the video call related signaling message to an SIP server so as to send the video call related signaling message to a called client through the SIP server, and similarly, the called client can also send the video call related signaling message to a calling client through the SIP server. The SIP server acquires the state of each client and the identification of the client, and the video call related signaling message sent from the calling client carries the identifications of the calling client and the called client. And the SIP server sends the video call related signaling message to the corresponding called client according to the identifications of the calling client and the called client.
In this embodiment, after receiving the important signaling message sent by the calling client, the MQTT server stores the important signaling message in its own database, so that the called client can receive all the important signaling messages containing the call topic sent by the MQTT server under the same call topic.
In this embodiment, the SIP server transmits the video call related signaling message to the called client, which may lose the signaling message, so that the called client receives the video call related signaling message sent by the SIP server and the important signaling message sent by the MQTT server, thereby preventing the important signaling message from being lost and realizing reliable video communication.
Through the multimedia network call system of the embodiment, the problem that the signaling message transmitted by using the UDP protocol is unreliable due to the fact that the signaling message is transmitted by the SIP server based on the UDP protocol to establish video communication in the prior art can be solved, and the reliability of the signaling message transmission is improved.
Optionally, in the embodiment shown in fig. 2, before sending and receiving the video call related signaling message with the called client 203 through the SIP server 204, the calling client 201 sends a request for allocating a call topic to the MQTT server 202, and receives a call topic returned by the MQTT server 202; and sends a call subject notification message to the called client through the SIP server 304; adding a call theme in each important signaling message sent to the MQTT server 202;
the MQTT server 202 receives a call theme distribution request sent by the calling client 201, and distributes a call theme for the call;
the called client 203 obtains the call subject from the call subject notification message after receiving the call subject notification message through the SIP server 204; sending a subscription request containing a call topic to the MQTT server 202; receiving an important signaling message containing a call subject sent by the MQTT server 204.
It can be understood that the MQTT server uses a topic subscription mode for receiving and sending signaling messages, and in this embodiment, before the calling client sends an important signaling message to the MQTT, it needs to know the call topic of the important signaling message, so that the calling client sends a request for allocating the call topic to the MQTT server to obtain the call topic of the important signaling message. The calling client receives the call theme returned by the MQTT server, adds the call theme in the important signaling message and sends the call theme to the MQTT server.
In this embodiment, the MQTT server sends an important signaling message containing a call topic to the called client according to the subscription of the called client. The called client obtains the call subject by sending a call subject notification message through the SIP server, or by using a push service or IM protocol in the prior art, which is not described in detail herein. The called client needs to send a subscription request of the call topic to the MQTT server, so that the MQTT server sends an important signaling message containing the call topic.
In this implementation, the call topic is a unique identification code that identifies the video call, and the call topic can be generated in real time using the current system timestamp and a random number. For example: the current system unix timestamp is 1524792546, the random number is 4, the call theme generated by the MQTT server is W1, the current system unix timestamp is 1524792532, the random number is 1, and the call theme generated by the MQTT server is W2. W1 and W2 may be unix time stamps, a preset number of arbitrary character combinations with random numbers. The calling theme can be generated by the MQTT server in real time according to the identification of the client and the calling times. For example: the calling client is marked as A1, the calling client sends a request for distributing calling topics to an MQTT server for the first time, and the calling topic generated by the MQTT server is Q1; the calling client is marked as A1, the calling client sends a request for distributing calling topics to the MQTT server for the second time, and the calling topic generated by the MQTT server is Q2; q1 and Q2 can be the client id, a combination of a preset number of arbitrary characters and the number of calls.
Optionally, the called client 203 further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server 202 or the SIP server 204; if so, the currently received signaling message is discarded.
In this embodiment, if the SIP server transmits the signaling message and is lost, the called client receives the signaling message sent by the MQTT server, so as to prevent the important signaling message from being lost. If the signaling message transmitted by the SIP server is not lost, the called client side also receives the signaling message which is sent by the MQTT server and has the same content with the signaling message transmitted by the SIP server, and discards the signaling message currently received from the MQTT server. If the called client receives the signaling message sent by the MQTT server, the SIP server transmits the signaling message with the same content as the signaling message sent by the MQTT server without losing, and the signaling message currently received from the SIP server is discarded.
The embodiment determines whether the signaling message with the same content has been received before, according to the content of the signaling message or the key parameter of the content of the signaling message. Key parameters of the signaling message content include: the method comprises the steps of sending a client identification of a signaling message, receiving the client identification of the signaling message, the type of the signaling message and recording a unique identification of a video call.
Optionally, in the embodiment shown in fig. 2, the calling client 201 further receives a signaling message sent by the SIP server 204 and generated by the SIP server 204 itself;
the SIP server 204 is used for further storing the call theme, adding the call theme in an important signaling message generated by the SIP server, and sending the call theme to the MQTT server 202;
the called client 203 further saves the call theme, adds the call theme in an important signaling message generated by the called client, and sends the call theme to the MQTT server 202;
the calling client 201 further sends a subscription request to the MQTT server 202;
the MQTT server 202 further sends the important signaling message generated by the SIP server itself and the important signaling message generated by the called client 203 itself to the calling client 201 according to the subscription request of the calling client 201.
In this embodiment, the SIP server obtains and stores the call topic from the received call topic notification message sent by the calling client. The SIP server can record the service states of the calling client and the called client in real time and carry out corresponding processing according to the service requirements. The SIP server distinguishes important signaling messages and non-important signaling messages in the signaling messages generated by the SIP server according to the signaling messages generated by the SIP server per se according to the service state of the called client. The SIP server takes the signaling message used as the heartbeat packet and the common ACK message as the non-important signaling message; the SIP server takes the signaling messages except the heartbeat packet and the common ACK message as important signaling messages; the SIP server sends the signaling message generated by the SIP server to the calling client, and also adds the call theme to the important signaling message generated by the SIP server and sends the important signaling message to the MQTT server.
For example: in a service that does not support call waiting, if the calling client sends a signaling message related to a video call and the called client is already in a busy state, the SIP server generates an important signaling message corresponding to the service state of the called client, where the important signaling message may be: the called client B is talking or the called client B is busy. If the calling client sends a signaling message related to a video call in a service supporting call waiting, and the called client is already in a busy state, the SIP server generates an important signaling message corresponding to the service state of the called client, where the important signaling message may be: the called client B is either talking and waiting or busy and waiting.
In this embodiment, the called client receives the call topic notification message sent by the SIP server, knows the call topic already, generates an important signaling message according to the service state of the called client, adds the call topic to the important signaling message generated by the called client, and sends the call topic to the MQTT server. The called client uses the signaling message generated by itself and used as the heartbeat packet as the non-important signaling message. The signaling messages of the called client hanging up the call, answering the call and rejecting the call can be understood as important signaling.
For example: the called client receives the signaling message related to the video sent by the SIP server, establishes video communication with the calling client, and if the called client hangs up the video communication but the called client is busy, the called client directly hangs up the video communication, generates an important signaling message for hanging up the call and sends the important signaling message to the MQTT server. If the called client receives the signaling message related to the video sent by the SIP server and establishes video communication, the called client can generate an important signaling message for answering the call and send the important signaling message to the MQTT server.
In this embodiment, the calling client sends a request for allocating a call topic to the MQTT server and receives a call topic, so that the calling client can receive signaling messages generated by the SIP server and sent by the MQTT server, signaling messages generated by the called client and important signaling messages among signaling messages related to video call received from the called client and sent by the SIP server, only by sending a subscription request to the MQTT server.
Optionally, the calling client 201 further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server 402 or the SIP server 404; if so, the currently received signaling message is discarded.
In this embodiment, if the signaling message generated by the SIP server itself is lost during transmission, the calling client receives the signaling message generated by the MQTT server itself and sent by the SIP server itself, so as to prevent the signaling message generated by the SIP server itself from being lost. If the signaling message generated by the SIP server is not lost during transmission, the calling client also receives the signaling message which is sent by the MQTT server and has the same content as the signaling message generated by the SIP server, and the signaling message generated by the SIP server and received from the MQTT server at present is discarded. If the calling client receives the signaling message generated by the SIP server and sent by the MQTT server, the signaling message generated by the SIP server and transmitted by the SIP server is not lost, and the calling client discards the signaling message generated by the SIP server and received from the SIP server at present.
As shown in fig. 3, a calling method based on the multimedia network call of fig. 2 includes the following steps:
s301, a calling client sends and receives video call related signaling messages with a called client through an SIP server, and sends important signaling messages in preset video call related signaling messages to an MQTT server;
s302, the MQTT server receives and stores the important signaling message sent by the calling client, and sends the important signaling message sent by the calling client to the called client;
and S303, the called client receives the video call related information sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client.
In this embodiment, before the calling client sends the important signaling message to the MQTT, the important signaling message and the non-important signaling message are distinguished in the video call related signaling message according to a predetermined definition. For example, signaling messages for initiating a call, hanging up a call, answering a call, and rejecting a call can be understood as important signaling messages; a signaling message used as a heartbeat packet as a non-important signaling message. Sending the video call related signaling message to the SIP server, sending the important signaling message in the video call related signaling message to the MQTT server so as to send the video call related signaling message to the called client through the SIP server, and similarly, the called client can also send the video call related signaling message to the calling client through the SIP server.
The SIP server acquires the state of each client and the identification of the client, and the video call related signaling message sent from the calling client carries the identifications of the calling client and the called client. And the SIP server sends the video call related signaling message to the corresponding called client according to the identifications of the calling client and the called client.
In this embodiment, after receiving the important signaling message sent by the calling client, the MQTT server stores the important signaling message in its own database, so that the called client can receive all the important signaling messages containing the call topic sent by the MQTT server under the same call topic.
In this embodiment, the SIP server may lose the signaling message when transmitting the video call related signaling message, and therefore, the called client receives the video call related signaling message sent by the server and the important signaling message sent by the MQTT server, so as to prevent the important signaling message from being lost, and to establish reliable video communication.
By the multimedia network call system, the problem that signaling messages transmitted by using a UDP protocol are unreliable due to the fact that video communication is established by the SIP server based on the UDP protocol in the prior art can be solved, and the reliability of the signaling messages transmitted is improved.
Optionally, in the embodiment shown in fig. 3, before the called client sends and receives the video call related signaling message with the called client through the SIP server in S303, the method includes:
the method comprises the following steps: the calling client sends a request for distributing the calling theme to the MQTT server and receives the calling theme returned by the MQTT server; and a subject notification message is sent to the called client through the SIP server; adding the call theme in each important signaling message sent to the MQTT server;
step two: the MQTT server receives a call theme distribution request sent by the calling client and distributes a call theme for the call;
step three: the called client obtains the calling subject from the subject notification message after receiving the subject notification message through the SIP server; sending a subscription request containing a call topic to an MQTT server; and receiving an important signaling message containing the call subject sent by the MQTT server.
The embodiment is used for obtaining the call subject of the important signaling from the MQTT server, so that the calling client can transmit the important signaling to the called client through the MQTT server.
It can be understood that, the MQTT server uses the topic subscription mode to receive and send the signaling message, and in this embodiment, before the calling client sends the important signaling message to the MQTT, it needs to know the call topic of the important signaling message, so that the calling client sends a request for allocating the call topic to the MQTT server, so as to obtain the call topic of the important signaling message. The calling client receives the call theme returned by the MQTT server, adds the call theme in the important signaling message and sends the call theme to the MQTT server.
In this implementation, whether the important signaling message is transmitted to the called client depends on whether the called client subscribes to the important signaling message containing the call subject according to its own requirements. The called client obtains the call subject by sending a call subject notification message through the SIP server, or by using a push service or IM protocol in the prior art, which is not described in detail herein. The called client needs to send a subscription request of the call topic to the MQTT server, so that the MQTT server sends an important signaling message containing the call topic.
In this implementation, the call topic is a unique identification code that identifies the video call, and the call topic can be generated in real time using the current system timestamp and a random number. For example: the current system unix timestamp is 1524792546, the random number is 4, the call theme generated by the MQTT server is W1, the current system unix timestamp is 1524792532, the random number is 1, and the call theme generated by the MQTT server is W2. W1 and W2 may be unix time stamps, a preset number of arbitrary character combinations with random numbers. The calling theme can be generated by the MQTT server in real time according to the identification of the client and the calling times. For example: the calling client is marked as A1, the calling client sends a request for distributing calling topics to an MQTT server for the first time, and the calling topic generated by the MQTT server is Q1; the calling client is marked as A1, the calling client sends a request for distributing calling topics to the MQTT server for the second time, and the calling topic generated by the MQTT server is Q2; q1 and Q2 can be the client id, a combination of a preset number of arbitrary characters and the number of calls.
Optionally, in S303, the step of receiving, by the called client, the video call related information sent by the SIP server and the important signaling message sent by the MQTT server includes: further judging whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
In this embodiment, if the SIP server transmits the signaling message and is lost, the called client receives the signaling message sent by the MQTT server, so as to prevent the important signaling message from being lost. If the signaling message transmitted by the SIP server is not lost, the called client side also receives the signaling message which is sent by the MQTT server and has the same content with the signaling message transmitted by the SIP server, and discards the signaling message currently received from the MQTT server. If the called client receives the signaling message sent by the MQTT server, the SIP server transmits the signaling message with the same content as the signaling message sent by the MQTT server without losing, and the signaling message currently received from the SIP server is discarded.
The embodiment determines whether the signaling message with the same content has been received before, according to the content of the signaling message or the key parameter of the content of the signaling message. Key parameters of the signaling message content include: the method comprises the steps of sending a client identification of a signaling message, receiving the client identification of the signaling message, the type of the signaling message and recording a unique identification of a video call.
Optionally, as shown in fig. 4, in the embodiment shown in fig. 3, the interactive process of the calling client obtaining the signaling message generated by the SIP server includes the following steps:
s401, the calling client further receives a signaling message generated by the SIP server and sent by the SIP server;
s402, the SIP server further stores the calling subject, adds the calling subject in the important signaling message generated by the SIP server and sends the calling subject to the MQTT server;
s403, the called client further saves the calling theme, adds the calling theme in the important signaling message generated by the called client and sends the calling theme to the MQTT server;
s404, the calling client further sends a subscription request to the MQTT server;
and S405, the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
In this embodiment, the SIP server obtains and stores the call topic from the received call topic notification message sent by the calling client. The SIP server can record the service states of the calling client and the called client in real time and carry out corresponding processing according to the service requirements. The SIP server distinguishes important signaling messages and non-important signaling messages in the signaling messages generated by the SIP server according to the signaling messages generated by the SIP server per se according to the service state of the called client. The SIP server takes the signaling message used as the heartbeat packet and the common ACK message as the non-important signaling message; the SIP server takes the signaling messages except the heartbeat packet and the common ACK message as important signaling messages; the SIP server sends the signaling message generated by the SIP server to the calling client, and also adds the call theme to the important signaling message generated by the SIP server and sends the important signaling message to the MQTT server.
For example: in a service that does not support call waiting, if the calling client sends a signaling message related to a video call and the called client is already in a busy state, the SIP server generates an important signaling message corresponding to the service state of the called client, where the important signaling message may be: the called client B is talking or the called client B is busy. If the calling client sends a signaling message related to a video call in a service supporting call waiting, and the called client is already in a busy state, the SIP server generates an important signaling message corresponding to the service state of the called client, where the important signaling message may be: the called client B is either talking and waiting or busy and waiting.
In this embodiment, the called client receives the call topic notification message sent by the SIP server, knows the call topic, generates an important signaling message according to the service state of the called client, adds the call topic to the important signaling message generated by the called client, and sends the call topic to the MQTT server. The called client uses the signaling message generated by itself and used as the heartbeat packet as the non-important signaling message. The signaling messages of the called client hanging up the call, answering the call and rejecting the call can be understood as important signaling.
For example: the called client receives the signaling message related to the video sent by the SIP server, establishes video communication with the calling client, and if the called client hangs up the video communication but the called client is busy, the called client directly hangs up the video communication, generates an important signaling message for hanging up the call and sends the important signaling message to the MQTT server. If the called client receives the signaling message related to the video sent by the SIP server and establishes video communication, the called client can generate an important signaling message for answering the call and send the important signaling message to the MQTT server.
In this embodiment, the calling client sends a request for allocating a call topic to the MQTT server and receives a call topic, so that the calling client can receive signaling messages generated by the SIP server and sent by the MQTT server, signaling messages generated by the called client and important signaling messages among signaling messages related to video call received from the called client and sent by the SIP server, only by sending a subscription request to the MQTT server.
Optionally, in S404, after the step of sending the signaling message generated by the MQTT server and sent by the SIP server to the calling client according to the subscription request of the calling client, the step includes: the calling client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
In this embodiment, if the signaling message generated by the SIP server itself is lost during transmission, the calling client receives the signaling message generated by the MQTT server itself and sent by the SIP server itself, so as to prevent the signaling message generated by the SIP server itself from being lost. If the signaling message generated by the SIP server is not lost during transmission, the calling client also receives the signaling message which is sent by the MQTT server and has the same content as the signaling message generated by the SIP server, and the signaling message generated by the SIP server and received from the MQTT server at present is discarded. If the calling client receives the signaling message generated by the SIP server and sent by the MQTT server, the signaling message generated by the SIP server and transmitted by the SIP server is not lost, and the calling client discards the signaling message generated by the SIP server and received from the SIP server at present.
As shown in fig. 5, another calling system for multimedia network call provided by the embodiment of the present invention includes:
a calling client 501, which sends and receives a video call related signaling message with a called client 503 through an SIP server 504;
the SIP server 504 is configured to send the video call related signaling message received from the calling client 501 to the called client, and send an important signaling message in the preset video call related signaling message to the MQTT server 502;
the MQTT server 502 receives and stores the important signaling message sent by the SIP server 504, and sends the important signaling message sent by the SIP server 504 to the called client;
the called client 503 receives the video call related information sent by the SIP server 504 and the important signaling message sent by the MQTT server 502, and establishes video communication with the calling client 501.
In this embodiment, after the SIP server receives the video call related signaling message from the calling client, the SIP server parses the video call related signaling message to obtain the content of the signaling message. And distinguishing important signaling messages from non-important signaling messages in the video call related signaling messages according to the pre-definition of the SIP server. For example, signaling messages for initiating a call, hanging up a call, answering a call, and rejecting a call can be understood as important signaling messages; a signaling message used as a heartbeat packet as a non-important signaling message. And the SIP server sends the video call related signaling message to a called client, and sends an important signaling message in the video call related signaling message to the MQTT server. The called client can also send video call related signaling message to the calling client through the SIP server. The SIP server acquires the state of each client and the identification of the client, and the video call related signaling message sent from the calling client carries the identifications of the calling client and the called client. And the SIP server sends the video call related signaling message to the corresponding called client according to the identifications of the calling client and the called client.
In this embodiment, after receiving the important signaling message sent by the SIP server, the MQTT server stores the important signaling message in its own database, so that the called client can receive all the important signaling messages containing the call topic sent by the MQTT server under the same call topic.
In this embodiment, the SIP server transmits the video call related signaling message to the called client, which may lose the signaling message, so that the called client receives the video call related signaling message sent by the SIP server and the important signaling message sent by the MQTT server, thereby preventing the important signaling message from being lost and realizing reliable video communication.
Through the multimedia network call system of the embodiment, the problem that the signaling message transmitted by using the UDP protocol is unreliable due to the fact that the signaling message is transmitted by the SIP server based on the UDP protocol to establish video communication in the prior art can be solved, and the reliability of the signaling message transmission is improved.
Optionally, in the embodiment shown in fig. 5, the SIP server 504 sends a request for allocating a call topic to the MQTT server 502, and receives a call topic returned by the MQTT server 502; sending a subject notification message to the called client 503; adding the call theme to each important signaling message sent to the MQTT server 502;
the MQTT server 502 receives a call theme distribution request sent by the SIP server 504 and distributes a call theme for the call;
the called client 503, after receiving the theme notification message sent by the SIP server 504, obtains the call theme from the theme notification message; sending a subscription request containing the call topic to the MQTT server 502; receiving an important signaling message containing the call subject sent by the MQTT server 502.
It can be understood that the MQTT server uses the topic subscription mode to receive and send the signaling message, and needs to know the call topic of the important signaling message before the SIP server sends the important signaling message to the MQTT server, so the SIP server sends a request for allocating the call topic to the MQTT server to obtain the call topic of the important signaling message. The calling client receives the call theme returned by the MQTT server, adds the call theme in the important signaling message and sends the call theme to the MQTT server.
In this embodiment, the MQTT server sends an important signaling message containing a call topic to the called client according to the subscription of the called client. The called client obtains the call subject by sending a call subject notification message through the SIP server, or by using a push service or IM protocol in the prior art, which is not described in detail herein. The called client needs to send a subscription request of the call topic to the MQTT server, so that the MQTT server sends an important signaling message containing the call topic.
In this implementation, the call topic is a unique identification code that identifies the video call, and the call topic can be generated in real time using the current system timestamp and a random number. For example: the current system unix timestamp is 1524792546, the random number is 4, the call theme generated by the MQTT server is W1, the current system unix timestamp is 1524792532, the random number is 1, and the call theme generated by the MQTT server is W2. W1 and W2 may be unix time stamps, a preset number of arbitrary character combinations with random numbers. The calling theme can be generated by the MQTT server in real time according to the identification of the client and the calling times. For example: the calling client is marked as A1, the calling client sends a request for distributing calling topics to an MQTT server for the first time, and the calling topic generated by the MQTT server is Q1; the calling client is marked as A1, the calling client sends a request for distributing calling topics to the MQTT server for the second time, and the calling topic generated by the MQTT server is Q2; q1 and Q2 can be the client id, a combination of a preset number of arbitrary characters and the number of calls.
Optionally, the called client 503 further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server 502 or the SIP server 504; if so, the currently received signaling message is discarded.
In this embodiment, if the SIP server transmits the signaling message and is lost, the called client receives the signaling message sent by the MQTT server, so as to prevent the important signaling message from being lost. If the signaling message transmitted by the SIP server is not lost, the called client side also receives the signaling message which is sent by the MQTT server and has the same content with the signaling message transmitted by the SIP server, and discards the signaling message currently received from the MQTT server. If the called client receives the signaling message sent by the MQTT server, the SIP server transmits the signaling message with the same content as the signaling message sent by the MQTT server without losing, and the signaling message currently received from the SIP server is discarded.
The embodiment determines whether the signaling message with the same content has been received before, according to the content of the signaling message or the key parameter of the content of the signaling message. Key parameters of the signaling message content include: the method comprises the steps of sending a client identification of a signaling message, receiving the client identification of the signaling message, the type of the signaling message and recording a unique identification of a video call.
Optionally, the calling client 501 in the embodiment shown in fig. 5 further receives a signaling message generated by the SIP server 504 itself and sent by the SIP server 504;
the SIP server 504 is used for further adding a call subject in an important signaling message generated by the SIP server and sending the added call subject to the MQTT server 502;
the called client 503 further saves the call theme, adds the call theme in the important signaling message generated by the called client, and sends the call theme to the MQTT server 502;
the calling client 501 further sends a subscription request to the MQTT server 502;
the MQTT server 502 further sends the important signaling message generated by the SIP server 504 itself and the important signaling message generated by the called client 503 itself to the calling client 501 according to the subscription request of the calling client 501.
In the embodiment, the SIP server stores the call subject received from the MQTT server. The SIP server can record the service states of the calling client and the called client in real time and carry out corresponding processing according to the service requirements. The SIP server distinguishes important signaling messages and non-important signaling messages in the signaling messages generated by the SIP server according to the signaling messages generated by the SIP server per se according to the service state of the called client. The SIP server takes the signaling message used as the heartbeat packet and the common ACK message as the non-important signaling message; the SIP server takes the signaling messages except the heartbeat packet and the common ACK message as important signaling messages; the SIP server sends the signaling message generated by the SIP server to the calling client, and also adds the call theme to the important signaling message generated by the SIP server and sends the important signaling message to the MQTT server.
For example: in a service that does not support call waiting, if the calling client sends a signaling message related to a video call and the called client is already in a busy state, the SIP server generates an important signaling message corresponding to the service state of the called client, where the important signaling message may be: the called client B is talking or the called client B is busy. If the calling client sends a signaling message related to a video call in a service supporting call waiting, and the called client is already in a busy state, the SIP server generates an important signaling message corresponding to the service state of the called client, where the important signaling message may be: the called client B is either talking and waiting or busy and waiting.
In this embodiment, the called client receives the call topic notification message sent by the SIP server, knows the call topic, generates an important signaling message according to the service state of the called client, adds the call topic to the important signaling message generated by the called client, and sends the call topic to the MQTT server. The called client uses the signaling message generated by itself and used as the heartbeat packet as the non-important signaling message. The signaling messages of the called client hanging up the call, answering the call and rejecting the call can be understood as important signaling.
For example: the called client receives the signaling message related to the video sent by the SIP server, establishes video communication with the calling client, and if the called client hangs up the video communication but the called client is busy, the called client directly hangs up the video communication, generates an important signaling message for hanging up the call and sends the important signaling message to the MQTT server. If the called client receives the signaling message related to the video sent by the SIP server and establishes video communication, the called client can generate an important signaling message for answering the call and send the important signaling message to the MQTT server.
In this embodiment, the SIP server has sent a request for allocating a call topic to the MQTT server and received the call topic. The SIP server informs the calling client of the calling subject. Therefore, the calling client can receive the signaling message generated by the SIP server and sent by the MQTT server, the signaling message generated by the called client and the important signaling message in the video call related signaling message received from the called client, which is sent by the SIP server, only by sending the subscription request to the MQTT server.
Optionally, the calling client 501 further determines whether a signaling message with the same content has been received before for a signaling message currently received from the MQTT server 502 or the SIP server 504; if so, the currently received signaling message is discarded.
In this embodiment, if the signaling message generated by the SIP server itself is lost during transmission, the calling client receives the signaling message generated by the MQTT server itself and sent by the SIP server itself, so as to prevent the signaling message generated by the SIP server itself from being lost. If the signaling message generated by the SIP server is not lost during transmission, the calling client also receives the signaling message which is sent by the MQTT server and has the same content as the signaling message generated by the SIP server, and the signaling message generated by the SIP server and received from the MQTT server at present is discarded. If the calling client receives the signaling message generated by the SIP server and sent by the MQTT server, the signaling message generated by the SIP server and transmitted by the SIP server is not lost, and the calling client discards the signaling message generated by the SIP server and received from the SIP server at present.
As shown in fig. 6, a calling method based on the multimedia network call of fig. 5 includes the following steps:
s601, a calling client sends and receives a video call related signaling message with a called client through an SIP server;
s602, the SIP server sends the video call related signaling message received from the calling client to the called client, and sends the important signaling message in the preset video call related signaling message to the MQTT server;
s603, the MQTT server receives and stores the important signaling message sent by the SIP server and sends the important signaling message sent by the SIP server to the called client;
s604, the called client receives the video call related information sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client.
In this embodiment, after the SIP server receives the video call related signaling message from the calling client, the SIP server parses the video call related signaling message to obtain the content of the signaling message. And distinguishing important signaling messages from non-important signaling messages in the video call related signaling messages according to the pre-definition of the SIP server. For example, signaling messages for initiating a call, hanging up a call, answering a call, and rejecting a call can be understood as important signaling messages; a signaling message used as a heartbeat packet as a non-important signaling message. And the SIP server sends the video call related signaling message to a called client, and sends an important signaling message in the video call related signaling message to the MQTT server. The called client can also send video call related signaling message to the calling client through the SIP server. The SIP server acquires the state of each client and the identification of the client, and the video call related signaling message sent from the calling client carries the identifications of the calling client and the called client. And the SIP server sends the video call related signaling message to the corresponding called client according to the identifications of the calling client and the called client.
In this embodiment, after receiving the important signaling message sent by the SIP server, the MQTT server stores the important signaling message in its own database, so that the called client can receive all the important signaling messages containing the call topic sent by the MQTT server under the same call topic.
In this embodiment, the SIP server transmits the video call related signaling message to the called client, which may lose the signaling message, so that the called client receives the video call related signaling message sent by the SIP server and the important signaling message sent by the MQTT server, thereby preventing the important signaling message from being lost and realizing reliable video communication.
By the multimedia network call system, the problem that signaling messages transmitted by using a UDP protocol are unreliable due to the fact that video communication is established by the SIP server based on the UDP protocol in the prior art can be solved, and the reliability of the signaling messages transmitted is improved.
Optionally, in the embodiment shown in fig. 6, in S602, before the step of sending, by the SIP server, the important signaling message in the preset video call related signaling message to the MQTT server, the method includes:
the method comprises the following steps: the SIP server sends a request for distributing the calling theme to the MQTT server and receives the calling theme returned by the MQTT server; and a subject notification message is sent to the called client through the SIP server; adding the call theme in each important signaling message sent to the MQTT server;
step two: the MQTT server receives a call theme distribution request sent by the SIP server and distributes a call theme for the call;
step three: the called client receives the theme notification message sent by the SIP server and then obtains the call theme from the theme notification message; sending a subscription request containing the call topic to the MQTT server; and receiving an important signaling message which is sent by the MQTT server and contains the call subject.
It can be understood that the MQTT server uses a topic subscription mode to receive and send signaling messages, and before the SIP server sends important signaling messages to the MQTT, it needs to know the call topic of the important signaling messages, so the SIP server sends a request for allocating the call topic to the MQTT server to obtain the call topic of the important signaling messages. The calling client receives the call theme returned by the MQTT server, adds the call theme in the important signaling message and sends the call theme to the MQTT server.
In this embodiment, the MQTT server sends an important signaling message containing a call topic to the called client according to the subscription of the called client. The called client obtains the call subject by sending a call subject notification message through the SIP server, or by using a push service or IM protocol in the prior art, which is not described in detail herein. The called client needs to send a subscription request of the call topic to the MQTT server, so that the MQTT server sends an important signaling message containing the call topic.
In this implementation, the call topic is a unique identification code that identifies the video call, and the call topic can be generated in real time using the current system timestamp and a random number. For example: the current system unix timestamp is 1524792546, the random number is 4, the call theme generated by the MQTT server is W1, the current system unix timestamp is 1524792532, the random number is 1, and the call theme generated by the MQTT server is W2. W1 and W2 may be unix time stamps, a preset number of arbitrary character combinations with random numbers. The calling theme can be generated by the MQTT server in real time according to the identification of the client and the calling times. For example: the calling client is marked as A1, the calling client sends a request for distributing calling topics to an MQTT server for the first time, and the calling topic generated by the MQTT server is Q1; the calling client is marked as A1, the calling client sends a request for distributing calling topics to the MQTT server for the second time, and the calling topic generated by the MQTT server is Q2; q1 and Q2 can be the client id, a combination of a preset number of arbitrary characters and the number of calls.
Optionally, in S604, the step of receiving the video call related information sent by the SIP server and the important signaling message sent by the MQTT server includes: the called client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
In this embodiment, if the SIP server transmits the signaling message and is lost, the called client receives the signaling message sent by the MQTT server, so as to prevent the important signaling message from being lost. If the signaling message transmitted by the SIP server is not lost, the called client side also receives the signaling message which is sent by the MQTT server and has the same content with the signaling message transmitted by the SIP server, and discards the signaling message currently received from the MQTT server. If the called client receives the signaling message sent by the MQTT server, the SIP server transmits the signaling message with the same content as the signaling message sent by the MQTT server without losing, and the signaling message currently received from the SIP server is discarded.
The embodiment determines whether the signaling message with the same content has been received before, according to the content of the signaling message or the key parameter of the content of the signaling message. Key parameters of the signaling message content include: the method comprises the steps of sending a client identification of a signaling message, receiving the client identification of the signaling message, the type of the signaling message and recording a unique identification of a video call.
Optionally, as shown in fig. 7, in the embodiment shown in fig. 5, a process of obtaining, by the calling client, the signaling message generated by the SIP server includes the following steps:
s701, the calling client further receives a signaling message which is sent by the SIP server and generated by the SIP server;
s702, the SIP server further adds a call subject in an important signaling message generated by the SIP server and sends the call subject to the MQTT server;
s703, the called client further saves the call theme, adds the call theme in the important signaling message generated by the called client and sends the call theme to the MQTT server;
s704, the calling client further sends a subscription request to the MQTT server;
and S705, the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
In the embodiment, the SIP server stores the call subject received from the MQTT server. The SIP server can record the service states of the calling client and the called client in real time and carry out corresponding processing according to the service requirements. The SIP server distinguishes important signaling messages and non-important signaling messages in the signaling messages generated by the SIP server according to the signaling messages generated by the SIP server per se according to the service state of the called client. The SIP server takes the signaling message used as the heartbeat packet and the common ACK message as the non-important signaling message; the SIP server takes the signaling messages except the heartbeat packet and the common ACK message as important signaling messages; the SIP server sends the signaling message generated by the SIP server to the calling client, and also adds the call theme to the important signaling message generated by the SIP server and sends the important signaling message to the MQTT server.
For example: in a service that does not support call waiting, if the calling client sends a signaling message related to a video call and the called client is already in a busy state, the SIP server generates an important signaling message corresponding to the service state of the called client, where the important signaling message may be: the called client B is talking or the called client B is busy. If the calling client sends a signaling message related to a video call in a service supporting call waiting, and the called client is already in a busy state, the SIP server generates an important signaling message corresponding to the service state of the called client, where the important signaling message may be: the called client B is either talking and waiting or busy and waiting.
In this embodiment, the called client receives the call topic notification message sent by the SIP server, knows the call topic already, generates an important signaling message according to the service state of the called client, adds the call topic to the important signaling message generated by the called client, and sends the call topic to the MQTT server. The called client uses the signaling message generated by itself and used as the heartbeat packet as the non-important signaling message. The signaling messages of the called client hanging up the call, answering the call and rejecting the call can be understood as important signaling.
For example: the called client receives the signaling message related to the video sent by the SIP server, establishes video communication with the calling client, and if the called client hangs up the video communication but the called client is busy, the called client directly hangs up the video communication, generates an important signaling message for hanging up the call and sends the important signaling message to the MQTT server. If the called client receives the signaling message related to the video sent by the SIP server and establishes video communication, the called client can generate an important signaling message for answering the call and send the important signaling message to the MQTT server.
In this embodiment, the SIP server has sent a request for allocating a call topic to the MQTT server and received the call topic. The SIP server informs the calling client of the calling subject. Therefore, the calling client can receive the signaling message generated by the SIP server and sent by the MQTT server, the signaling message generated by the called client and the important signaling message in the video call related signaling message received from the called client, which is sent by the SIP server, only by sending the subscription request to the MQTT server.
Optionally, in S704, after the step of sending the signaling message generated by the MQTT server to the calling client according to the subscription request of the calling client, the step includes: the calling client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
In this embodiment, if the signaling message generated by the SIP server itself is lost during transmission, the calling client receives the signaling message generated by the MQTT server itself and sent by the SIP server itself, so as to prevent the signaling message generated by the SIP server itself from being lost. If the signaling message generated by the SIP server is not lost during transmission, the calling client also receives the signaling message which is sent by the MQTT server and has the same content as the signaling message generated by the SIP server, and the signaling message generated by the SIP server and received from the MQTT server at present is discarded. If the calling client receives the signaling message generated by the SIP server and sent by the MQTT server, the signaling message generated by the SIP server and transmitted by the SIP server is not lost, and the calling client discards the signaling message generated by the SIP server and received from the SIP server at present.
In another embodiment of the present invention, a computer-readable storage medium is further provided, which stores instructions that, when executed on a computer, cause the computer to execute the method for calling a multimedia network call described in any of the above embodiments.
In another embodiment of the present invention, there is also provided a computer program product containing instructions which, when run on a computer, cause the computer to perform the method for calling a multimedia network session as described in any of the above embodiments.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the invention to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website site, computer, server, or data center to another website site, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may be a magnetic medium (e.g., floppy Disk, hard Disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., Solid State Disk (SSD)), among others.
It is noted that, herein, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, 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 an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
All the embodiments in the present specification are described in a related manner, and the same and similar parts among the embodiments may be referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the system embodiment, since it is substantially similar to the method embodiment, the description is simple, and for the relevant points, reference may be made to the partial description of the method embodiment.
The above description is only for the preferred embodiment of the present invention, and is not intended to limit the scope of the present invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention shall fall within the protection scope of the present invention.

Claims (18)

1. A calling system for a multimedia network call, the system comprising: the system comprises a calling client, a called client, an SIP server and an MQTT server;
the calling client sends and receives video call related signaling messages with the called client through the SIP server, and sends important signaling messages in the preset video call related signaling messages to the MQTT server; the important signaling message is a signaling message except a heartbeat packet and a common ACK message in the video call related signaling message;
the MQTT server receives and stores the important signaling message sent by the calling client, and sends the important signaling message sent by the calling client to the called client;
the called client receives the video call related signaling message sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client;
the calling client sends a request for allocating call themes to the MQTT server and receives call themes returned by the MQTT server before sending and receiving video call related signaling messages with the called client through the SIP server; and sending a call subject notification message to the called client through the SIP server; adding the call theme in each important signaling message sent to the MQTT server;
the MQTT server receives a call theme distribution request sent by a calling client and distributes a call theme for the call;
the called client obtains the calling subject from the calling subject notification message after receiving the calling subject notification message through the SIP server; sending a subscription request containing the call topic to the MQTT server; and receiving an important signaling message which is sent by the MQTT server and contains the call subject.
2. The system of claim 1,
the called client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
3. The system of claim 1,
the calling client further receives a signaling message which is sent by the SIP server and generated by the SIP server;
the SIP server further stores the calling subject, adds the calling subject in the important signaling message generated by the SIP server and sends the calling subject to the MQTT server;
the called client further saves the calling theme, adds the calling theme in an important signaling message generated by the called client and sends the calling theme to an MQTT server;
the calling client further sends a subscription request to the MQTT server;
and the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
4. The system of claim 3,
the calling client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
5. A calling method for multimedia network call, applied in the calling system of claim 1, the method comprising:
the system comprises a calling client, an MQTT server and a SIP server, wherein the calling client sends and receives video call related signaling messages with a called client through the SIP server and sends important signaling messages in the preset video call related signaling messages to the MQTT server; the important signaling message is a signaling message except a heartbeat packet and a common ACK message in the video call related signaling message;
the MQTT server receives and stores the important signaling message sent by the calling client, and sends the important signaling message sent by the calling client to the called client;
the called client receives the video call related information sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client;
the calling client sends a request for allocating call themes to the MQTT server and receives call themes returned by the MQTT server before sending and receiving video call related signaling messages with the called client through the SIP server; and sending a subject notification message to the called client through the SIP server; adding the call theme in each important signaling message sent to the MQTT server;
the MQTT server receives a call theme distribution request sent by a calling client and distributes a call theme for the call;
the called client obtains the calling subject from the subject notification message after receiving the subject notification message through the SIP server; sending a subscription request containing the call topic to the MQTT server; and receiving an important signaling message which is sent by the MQTT server and contains the call subject.
6. The method of claim 5,
the called client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
7. The method of claim 5,
the calling client further receives a signaling message which is sent by the SIP server and generated by the SIP server;
the SIP server further stores the calling subject, adds the calling subject in the important signaling message generated by the SIP server and sends the calling subject to the MQTT server;
the called client further saves the calling theme, adds the calling theme in an important signaling message generated by the called client and sends the calling theme to the MQTT server;
the calling client further sends a subscription request to the MQTT server;
and the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
8. The method of claim 7,
the calling client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
9. A calling system for a multimedia network call, the system comprising: the system comprises a calling client, a called client, an SIP server and an MQTT server;
the calling client sends and receives the video call related signaling message with the called client through the SIP server;
the SIP server sends the video call related signaling message received from the calling client to the called client, and sends the important signaling message in the preset video call related signaling message to the MQTT server; the important signaling message is a signaling message except a heartbeat packet and a common ACK message in the video call related signaling message;
the MQTT server receives and stores the important signaling message sent by the SIP server and sends the important signaling message sent by the SIP server to the called client;
and the called client receives the video call related information sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client.
10. The system of claim 9,
the SIP server sends a request for distributing calling themes to the MQTT server after receiving the calling request signaling information sent by the calling client, and receives the calling themes returned by the MQTT server; sending a theme notification message to a called client; adding the call theme in each important signaling message sent to the MQTT server;
the MQTT server receives a call theme distribution request sent by the SIP server and distributes a call theme for the call;
the called client receives the theme notification message sent by the SIP server and then obtains the call theme from the theme notification message; sending a subscription request containing the call topic to the MQTT server; and receiving an important signaling message which is sent by the MQTT server and contains the call subject.
11. The system of claim 9 or 10,
the called client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
12. The system of claim 10,
the calling client further receives a signaling message which is sent by the SIP server and generated by the SIP server;
the SIP server further adds a calling subject in an important signaling message generated by the SIP server and sends the calling subject to the MQTT server;
the called client further saves the calling theme, adds the calling theme in an important signaling message generated by the called client and sends the calling theme to an MQTT server;
the calling client further sends a subscription request to the MQTT server;
and the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
13. The system of claim 12,
the calling client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
14. A calling method of multimedia network call, applied in the calling system of claim 11,
the calling client sends and receives the video call related signaling message with the called client through the SIP server;
the SIP server sends the video call related signaling message received from the calling client to the called client, and sends the important signaling message in the preset video call related signaling message to the MQTT server; the important signaling message is a signaling message except a heartbeat packet and a common ACK message in the video call related signaling message;
the MQTT server receives and stores the important signaling message sent by the SIP server and sends the important signaling message sent by the SIP server to the called client;
and the called client receives the video call related information sent by the SIP server and the important signaling message sent by the MQTT server, and establishes video communication with the calling client.
15. The method of claim 14,
the SIP server sends a request for distributing calling themes to the MQTT server after receiving the calling request signaling information sent by the calling client, and receives the calling themes returned by the MQTT server; sending a theme notification message to a called client; adding the call theme in each important signaling message sent to the MQTT server;
the MQTT server receives a call theme distribution request sent by a calling client and distributes a call theme for the call;
the called client receives the theme notification message sent by the SIP server and then obtains the call theme from the theme notification message; sending a subscription request containing the call topic to the MQTT server; and receiving an important signaling message which is sent by the MQTT server and contains the call subject.
16. The method of claim 15,
the called client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
17. The method of claim 15,
the calling client further receives a signaling message which is sent by the SIP server and generated by the SIP server;
the SIP server further adds a calling subject in an important signaling message generated by the SIP server and sends the calling subject to the MQTT server;
the called client further saves the calling theme, adds the calling theme in an important signaling message generated by the called client and sends the calling theme to an MQTT server;
the calling client further sends a subscription request to the MQTT server;
and the MQTT server further sends the important signaling message generated by the SIP server and the important signaling message generated by the called client to the calling client according to the subscription request of the calling client.
18. The method of claim 17,
the calling client further judges whether the signaling message with the same content is received before or not for the signaling message currently received from the MQTT server or the SIP server; if so, the currently received signaling message is discarded.
CN201810432303.9A 2018-05-08 2018-05-08 Calling system and method for multimedia network call Active CN108881774B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810432303.9A CN108881774B (en) 2018-05-08 2018-05-08 Calling system and method for multimedia network call

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810432303.9A CN108881774B (en) 2018-05-08 2018-05-08 Calling system and method for multimedia network call

Publications (2)

Publication Number Publication Date
CN108881774A CN108881774A (en) 2018-11-23
CN108881774B true CN108881774B (en) 2021-05-28

Family

ID=64326497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810432303.9A Active CN108881774B (en) 2018-05-08 2018-05-08 Calling system and method for multimedia network call

Country Status (1)

Country Link
CN (1) CN108881774B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112600749B (en) * 2020-10-27 2023-02-17 百果园技术(新加坡)有限公司 Expired call identification method, device, terminal and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015145401A1 (en) * 2014-03-28 2015-10-01 Aetonix Systems Simple video communication platform
CN105656847A (en) * 2014-11-13 2016-06-08 中国科学院沈阳计算技术研究所有限公司 SIP (Session Initiation Protocol)/MQTT (Message Queuing Telemetry Transport) protocol conversion gateway system and control method thereof for mobile device
CN106817341A (en) * 2015-11-27 2017-06-09 中国科学院沈阳计算技术研究所有限公司 A kind of Session Initiation Protocol throttling Transmission system and method towards mobile Internet

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9660943B2 (en) * 2014-04-25 2017-05-23 International Business Machines Corporation Messaging based signaling for communications sessions
US10630731B2 (en) * 2015-10-08 2020-04-21 Verizon Patent And Licensing Inc. Establishing media sessions via MQTT and SIP

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015145401A1 (en) * 2014-03-28 2015-10-01 Aetonix Systems Simple video communication platform
CN105656847A (en) * 2014-11-13 2016-06-08 中国科学院沈阳计算技术研究所有限公司 SIP (Session Initiation Protocol)/MQTT (Message Queuing Telemetry Transport) protocol conversion gateway system and control method thereof for mobile device
CN106817341A (en) * 2015-11-27 2017-06-09 中国科学院沈阳计算技术研究所有限公司 A kind of Session Initiation Protocol throttling Transmission system and method towards mobile Internet

Also Published As

Publication number Publication date
CN108881774A (en) 2018-11-23

Similar Documents

Publication Publication Date Title
US9654519B2 (en) Notification of communication events
RU2316150C2 (en) Communication device for connecting a client to group call in group communication network
US8688822B2 (en) Push e-mail inferred network presence
JP5436571B2 (en) Method and apparatus for providing communication history
US7889854B2 (en) Systems, devices, and methods for handling connectivity loss
US9215195B2 (en) Method and apparatus for message synchronization in instant messaging applications
CA2455256A1 (en) Messaging advise in presence-aware networks
JP2008022584A (en) System and method for wireless multimedia communication
EP1775985A1 (en) Group call server, group call system, terminal and group call control method for rejoining group calls
EP3679713B1 (en) Call reconnection
US10320971B2 (en) Call log management for multiple communication devices using the same address of record
US20150116450A1 (en) Video Data Transmission Method and Apparatus, and Communications Device
US20220303325A1 (en) Method and device for controlling video reception
WO2015172629A1 (en) Message transmission method, apparatus and system
JP2008153782A (en) Call managing method, call management system, and message processing server system
EP2068524A1 (en) A method and a system for acquiring the transmission path of the sip message
CN108881774B (en) Calling system and method for multimedia network call
US8059809B1 (en) Systems and methods of establishing group calls
US20170142215A1 (en) Relaying mobile communications
US8868759B2 (en) Communication system and server
CN109889405B (en) Communication method of network telephone, related device and system
CN114979084A (en) Calling method, device and system
CN109120578B (en) Method and device for realizing link connection processing
JP5512919B2 (en) Service usage sharing method between different services
CN111865874A (en) Data transmission method and device

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
GR01 Patent grant
GR01 Patent grant