Media capability negotiation method, computer program product, and electronic device

By predicting media capabilities based on device information and gateway bandwidth before the call is established, and dynamically negotiating the initial capabilities of the video call, the problem of video stuttering in existing technologies is solved, resulting in a better user experience and network resource utilization.

CN118827642BActive Publication Date: 2026-03-24CHINA MOBILE COMM LTD RES INST +1
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-02-22
Publication Date
2026-03-24

AI Technical Summary

Technical Problem

Existing media negotiation technology adjusts media capabilities through adaptive network after a video call is established, resulting in unreasonable initial capabilities and a poor user experience, especially video stuttering when network bandwidth is insufficient.

Method used

Before a call is established, the final media capability information is predicted and determined based on the device information of the calling and called terminals and the gateway bandwidth, ensuring that the initial capability matches the network bandwidth, and the media capability is dynamically negotiated through the signaling server and capability platform.

Benefits of technology

It optimizes the user's call experience, avoids video call lag, and improves the efficiency of network resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118827642B_ABST
    Figure CN118827642B_ABST
Patent Text Reader

Abstract

The application discloses a media capability negotiation method, a computer program product and an electronic device. The media capability negotiation method comprises the following steps: determining first media capability information of a calling terminal based on device information of the calling terminal carried in a call request of the calling terminal; determining second media capability information of a called terminal based on device information of the called terminal carried in a response message of the called terminal to the call request; determining third media capability information of the calling terminal based on a first bandwidth of a gateway corresponding to the calling terminal at a current time and the first media capability information; determining fourth media capability information of the called terminal based on a second bandwidth of a gateway corresponding to the called terminal at the current time and the second media capability information; and determining final media capability information of the calling terminal for initiating a call based on the third media capability information and the fourth media capability information.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of communication technology, and in particular to a media capability negotiation method, a computer program product and an electronic device. BACKGROUND

[0002] The media negotiation technology in the related art is to adjust the media capability of a call terminal after a video call is established. For example, a home set-top box can support a video call at 1080P 30 frames per second, but the network bandwidth is insufficient to support this resolution frame rate due to network congestion, resulting in a video call lag and poor user experience. SUMMARY

[0003] Therefore, the embodiments of the present application provide a media capability negotiation method, a computer program product and an electronic device.

[0004] The technical solution of the embodiments of the present application is as follows:

[0005] In one aspect, the embodiments of the present application provide a media capability negotiation method, which comprises:

[0006] determining first media capability information of a calling terminal based on device information of the calling terminal carried in a call request of the calling terminal, and determining second media capability information of a called terminal based on device information of the called terminal carried in a response message of the called terminal to the call request;

[0007] determining third media capability information of the calling terminal based on a first bandwidth of a gateway corresponding to the calling terminal at a current time and the first media capability information, and determining fourth media capability information of the called terminal based on a second bandwidth of a gateway corresponding to the called terminal at the current time and the second media capability information;

[0008] determining final media capability information of the calling terminal for initiating a call based on the third media capability information and the fourth media capability information.

[0009] In the above solution, after the final media capability information of the calling terminal for initiating a call is determined, the method further comprises:

[0010] adding the final media capability information to the response message of the called terminal;

[0011] sending the response message to the calling terminal.

[0012] In the above solution, the call request further comprises a media access control (MAC) address of the calling terminal, and the response message further comprises a MAC address of the called terminal; the method further comprises:

[0013] querying a gateway corresponding to the calling terminal based on the MAC address of the calling terminal, and querying a gateway corresponding to the called terminal based on the MAC address of the called terminal;

[0014] predicting a first bandwidth of the gateway corresponding to the calling terminal at the current time based on historical traffic data of the gateway corresponding to the calling terminal, and predicting a second bandwidth of the gateway corresponding to the called terminal at the current time based on historical traffic data of the gateway corresponding to the called terminal.

[0015] In the above solution, the prediction of the first bandwidth of the gateway corresponding to the calling terminal at the current time based on the historical traffic data of the gateway corresponding to the calling terminal comprises:

[0016] determining whether the current time is located in a set time period;

[0017] if the current time is located in the set time period, predicting the first bandwidth of the gateway corresponding to the calling terminal at the current time based on historical traffic data of the gateway corresponding to the calling terminal in the set time period.

[0018] In the above solution, the determination of the third media capability information of the calling terminal based on the first bandwidth of the gateway corresponding to the calling terminal at the current time and the first media capability information comprises:

[0019] determining whether the first bandwidth supports the first media capability information;

[0020] if yes, taking the first media capability information as the third media capability information;

[0021] if no, taking fifth media capability information corresponding to the first bandwidth as the third media capability information; the fifth media capability information is the maximum media capability information supported by the first bandwidth;

[0022] Correspondingly, the determination of the fourth media capability information of the called terminal based on the second bandwidth of the gateway corresponding to the called terminal at the current time and the second media capability information comprises:

[0023] determining whether the second bandwidth supports the second media capability information;

[0024] if yes, taking the second media capability information as the fourth media capability information;

[0025] if no, taking sixth media capability information corresponding to the second bandwidth as the fourth media capability information; the sixth media capability information is the maximum media capability information supported by the second bandwidth.

[0026] In the above scheme, determining the final media capability information of the calling terminal initiating the call based on the third media capability information and the fourth media capability information comprises:

[0027] Determining the minimum value of the third media capability information and the fourth media capability information as the final media capability information.

[0028] In the above scheme, the call request further comprises default media capability information of the calling terminal, and the response message further comprises default media capability information of the called terminal; and determining the first media capability information of the calling terminal based on the device information of the calling terminal in the call request of the calling terminal comprises:

[0029] Querying a preset capability database based on the device information of the calling terminal to obtain the maximum media capability information corresponding to the calling terminal; the preset database stores the maximum media capability information corresponding to the device information of the calling terminal and the maximum media capability information corresponding to the device information of the called terminal;

[0030] Determining the first media capability information of the calling terminal based on the default media capability information and the maximum media capability information of the calling terminal;

[0031] Correspondingly, determining the second media capability information of the called terminal based on the device information of the called terminal in the response message of the called terminal to the call request comprises:

[0032] Querying the preset database based on the device information of the called terminal to obtain the maximum media capability information corresponding to the called terminal;

[0033] Determining the second media capability information of the called terminal based on the default media capability information and the maximum media capability information of the called terminal.

[0034] On the other hand, the embodiment of the present application further provides a computer program product comprising a computer program, which, when executed by a processor, implements the steps of the above media capability negotiation method.

[0035] On the other hand, the embodiment of the present application provides an electronic device comprising a processor and a memory, which are connected to each other, wherein the memory is configured to store a computer program comprising program instructions, and the processor is configured to invoke the program instructions to execute the steps of the media capability negotiation method provided by the embodiment of the present application.

[0036] In another aspect, an embodiment of the present application provides a computer readable storage medium, comprising: the computer readable storage medium storing a computer program. The computer program, when executed by a processor, implements the steps of the media capability negotiation method provided by an embodiment of the present application.

[0037] Based on the device information of the calling terminal carried in the call request of the calling terminal, an embodiment of the present application determines the first media capability information of the calling terminal, and based on the device information of the called terminal carried in the response message of the called terminal to the call request, determines the second media capability information of the called terminal. Then, based on the first bandwidth of the gateway corresponding to the calling terminal at the current time and the first media capability information, the third media capability information of the calling terminal is determined, and based on the second bandwidth of the gateway corresponding to the called terminal at the current time and the second media capability information, the fourth media capability information of the called terminal is determined. Finally, based on the third media capability information and the fourth media capability information, the final media capability information of the calling terminal initiating the call is determined. Before the call is established, an embodiment of the present application determines the first media capability information of the calling terminal according to the device information of the calling terminal, and determines the second media capability information of the called terminal according to the device information of the called terminal, and then determines the final media capability information of the calling terminal and the called terminal for the call according to the bandwidth of the calling terminal and the called terminal at the current time. An embodiment of the present application can set more reasonable initial media capability information, so that the final media capability information of the calling terminal initiating the call matches the call device and the network bandwidth, avoids the case that the video resolution and frame rate greatly exceed the actual device and the current network bandwidth, thereby avoiding the occurrence of call lag caused by the network condition, and optimizing the call experience of the user. BRIEF DESCRIPTION OF DRAWINGS

[0038] Figure 1 is an implementation flow diagram of a media capability negotiation method provided by an embodiment of the present application;

[0039] Figure 2 is a schematic diagram of a bandwidth prediction flow provided by an embodiment of the present application;

[0040] Figure 3 is an implementation flow diagram of a media capability negotiation method provided by an embodiment of the present application;

[0041] Figure 4 is a schematic diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION

[0042] With reference to the accompanying drawings, the technical solutions in the embodiments of the present application will be clearly and completely described below, obviously, the described embodiments are some of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative efforts belong to the scope of the present application.

[0043] More and more families install home broadband and watch network on-demand and live programs through network set-top boxes or other terminal devices such as mobile phones, and audio and video calls using set-top boxes and mobile phones and the like have also become an essential function that needs to be met by operators of home broadband.

[0044] Currently, the media capability negotiation mechanism of terminal audio and video calls is mainly based on the media negotiation method of traditional communication protocols and the network adaptation mechanism after call establishment. Taking the Session Description Protocol (SDP) of the Session Initiation Protocol (SIP) as an example, the calling set-top box needs to carry the media capability information of the calling party in the INVITE request for initiating a call, which mainly includes the audio encoding algorithm it supports. If the calling party can open a camera, it will also include the supported video encoding algorithm, video resolution, frame rate, etc. After receiving the media information, the called party matches the media capability of the calling party with its own media capability, finds the optimal media capability supported by both parties, and then sends the media capability finally decided by the called party in the answer message, after which the two parties begin to establish a media channel and interact. The initial media capability such as video resolution and frame rate can be adjusted according to the actual network situation perceived by the software after the call is established, i.e. network adaptation, when the network becomes poor, the video resolution and frame rate will be reduced simultaneously to meet the smoothness requirement of the video.

[0045] The existing media negotiation technology has the following problems in audio and video calls based on home broadband,

[0046] 1. The existing media negotiation technology adjusts the media capability through adaptive network after the video call is established, and does not give a reasonable initial media capability according to the actual network situation before the call is established. It has been proved in practice that a reasonable initial media capability is very important for user experience. For example, a home set-top box can support a video call capability of 1080P 30 frames per second, but due to the use of the user when busy, the network is busy, resulting in a network bandwidth far from enough to support this resolution and frame rate. This video traffic will further cause the network to be more congested, although the video call software will gradually adjust the video resolution and frame rate after the call is established, but the user will find that the video is lagging for a long time after the call is established, and the experience is poor.

[0047] 2, the video media capability of the existing media negotiation technology is usually saved in the application (APP) software of the terminal device, and the APP software determines the maximum supported media capability of the device by identifying the terminal hardware model. However, because there are many device information such as set-top boxes and mobile phones, and new models of set-top boxes and mobile phones may enter the market every year, this method of defining media capability by terminal identification is not scientific.

[0048] In view of the defects of the above related technologies, the embodiment of the present application provides a media capability negotiation method, which can avoid the occurrence of call lag. In order to describe the technical solutions of the present application, the following will be described by specific embodiments.

[0049] Figure 1 is a flowchart of the implementation of a media capability negotiation method provided by the embodiment of the present application, the execution subject of the media capability negotiation method is an electronic device, which can be a signaling server for processing call messages of two terminals. Referring to Figure 2 , the media capability negotiation method comprises:

[0050] S101, determining first media capability information of a calling terminal based on device information of the calling terminal carried in a call request of the calling terminal; and determining second media capability information of a called terminal based on device information of the called terminal carried in a response message of the called terminal to the call request.

[0051] Among them, "determining the first media capability information of the calling terminal based on the device information of the calling terminal carried in the call request of the calling terminal" and "determining the second media capability information of the called terminal based on the device information of the called terminal carried in the response message of the called terminal to the call request", the two steps in the above S101 can not be performed at the same time, in actual application, the first media capability information of the calling terminal can be determined based on the device information of the calling terminal carried in the call request of the calling terminal after receiving the call request of the calling terminal. When the response message of the called terminal to the call request is received subsequently, the second media capability information of the called terminal is determined.

[0052] Among them, the device information can include one or more of terminal hardware model, media access control (Media Access Control, MAC) address and software version number.

[0053] In an embodiment, the media capability information of the corresponding terminal can be queried according to the device information, and the media capability information of the terminal can be configured in a database and bound for query through the device information.

[0054] The media capability can refer to audio and video codec capability of the terminal, each call terminal has a default media capability and a maximum media capability, the maximum media capability refers to the maximum media capability supported by the hardware model of the terminal. The default media capability is generally manually set, and the default media capability can be greater than the maximum media capability.

[0055] In an embodiment, the first media capability information is the minimum value of the default media capability information and the maximum media capability information of the calling terminal, and the second media capability information is the minimum value of the default media capability information and the maximum media capability information of the called terminal. For example, the maximum audio and video codec capability of the calling terminal is 1080P30 frames, and the default audio and video codec capability is 720P30 frames, and the first media capability information is 720P30 frames.

[0056] S102, determining third media capability information of the calling terminal based on the first bandwidth of the gateway corresponding to the calling terminal at the current time and the first media capability information, and determining fourth media capability information of the called terminal based on the second bandwidth of the gateway corresponding to the called terminal at the current time and the second media capability information.

[0057] The first bandwidth of the gateway at the current time can be predicted by historical bandwidth flow information, for example, the average bandwidth in the current time period in the past month can be taken as the first bandwidth at the current time.

[0058] It is judged whether the first bandwidth can support the first media capability information, if not, the media capability needs to be reduced, and if the first bandwidth can support the first media capability information, the second media capability information is equal to the first media capability information.

[0059] For example, for video call, the network bandwidth calculation method corresponding to resolution frame rate is as follows:

[0060] Network bandwidth requirement K = resolution x 16 (16 bits per pixel) x frame rate / 100 (100 is H264 encoding compression ratio)

[0061] According to the formula, the bandwidth requirement corresponding to 1080P30 frames is 9.5 Mbps, and the bandwidth requirement corresponding to 720P30 frames is 4.2 Mbps. If the first bandwidth is only 2 Mbps, the calculated resolution frame rate is 4CIF, 30 frames.

[0062] Suppose the first media capability information is 1080P30 frame, and the first bandwidth is 5Mbps, the first bandwidth is obviously insufficient to support the first media capability information, then the resolution needs to be reduced, the first bandwidth can just support 720P30 frame, then the third media capability information is 720P30 frame. If the first bandwidth is 10Mbps, then the first bandwidth can support the first media capability information, then the third media capability information is 1080P30 frame.

[0063] Similarly, the fourth media capability information of the called terminal can be obtained according to the above method.

[0064] S103, determining the final media capability information of the call initiated by the calling terminal based on the third media capability information and the fourth media capability information.

[0065] In order to avoid call lag, the minimum value in the third media capability information and the fourth media capability information can be set as the final media capability information of the call initiated by the calling terminal, so as to ensure that the media capability information can be supported at both ends of the call.

[0066] The final media capability information will be sent back to the calling terminal as a called response, the calling terminal uses the received final media capability to confirm with the called party again, and finally uses the media capability to establish a media channel to initiate video and audio stream transmission.

[0067] In the embodiment of the application, the first media capability information of the calling terminal is determined based on the device information of the calling terminal carried in the call request of the calling terminal, and the second media capability information of the called terminal is determined based on the device information of the called terminal carried in the response message of the called terminal to the call request. Then, the third media capability information of the calling terminal is determined based on the first bandwidth of the gateway corresponding to the calling terminal at the current time and the first media capability information, and the fourth media capability information of the called terminal is determined based on the second bandwidth of the gateway corresponding to the called terminal at the current time and the second media capability information. Finally, the final media capability information of the call initiated by the calling terminal is determined based on the third media capability information and the fourth media capability information. In the embodiment of the application, the first media capability information of the calling terminal is determined according to the device information of the calling terminal before the call is established, and the second media capability information of the called terminal is determined according to the device information of the called terminal, then the final media capability information of the call between the calling terminal and the called terminal is determined by combining the bandwidths of the calling terminal and the called terminal at the current time. The embodiment of the application can set more reasonable initial media capability information, avoid the case that the video resolution and frame rate greatly exceed the actual device and the current network bandwidth, thereby avoiding the occurrence of call lag caused by network conditions, and optimizing the call experience of the user.

[0068] In an embodiment, in Figure 1In the steps of the illustrated flow, first media capability information of the calling terminal can be determined based on device information of the calling terminal carried in a call request of the calling terminal. Third media capability information of the calling terminal can be determined based on the first bandwidth of the gateway corresponding to the calling terminal at the current time and the first media capability information. Then second media capability information of the called terminal can be determined based on device information of the called terminal carried in a response message of the called terminal to the call request. Fourth media capability information of the called terminal can be determined based on the second bandwidth of the gateway corresponding to the called terminal at the current time and the second media capability information. Finally, final media capability information of the calling terminal initiating the call can be determined based on the third media capability information and the fourth media capability information.

[0069] The sequence numbers of the steps in the above embodiments do not mean the order of execution, and the execution order of the processes should be determined according to their functions and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0070] In an embodiment, after determining the final media capability information of the calling terminal initiating the call, the method further comprises:

[0071] adding the final media capability information to the response message of the called terminal;

[0072] sending the response message to the calling terminal.

[0073] The final media capability information will be returned to the calling terminal as a called response, and the calling terminal can use the received final media capability information to establish a media channel to initiate video and audio streaming.

[0074] In an embodiment, the call request further comprises a MAC address of the calling terminal, the response message further comprises a MAC address of the called terminal, and the method further comprises:

[0075] querying the gateway corresponding to the calling terminal based on the MAC address of the calling terminal, and querying the gateway corresponding to the called terminal based on the MAC address of the called terminal;

[0076] predicting the first bandwidth of the gateway corresponding to the calling terminal at the current time based on historical traffic data of the gateway corresponding to the calling terminal, and predicting the second bandwidth of the gateway corresponding to the called terminal at the current time based on historical traffic data of the gateway corresponding to the called terminal.

[0077] For example, according to the terminal MAC, the serial number (SN) of the gateway corresponding to the terminal is inquired, and the SN of the gateway corresponding to the terminal is further sent to the soft probe platform to inquire the maximum predicted actual bandwidth of the gateway at the current time. The soft probe platform first judges whether there is valid video traffic of the gateway at the corresponding busy time in the past seven days. If there is, the first bandwidth is predicted according to the historical traffic. For example, the average bandwidth of the gateway in the past seven days can be taken as the first bandwidth. Similarly, the second bandwidth can be obtained.

[0078] In an embodiment, the first bandwidth of the gateway corresponding to the calling terminal at the current time is predicted based on historical traffic data of the gateway corresponding to the calling terminal, and the second bandwidth of the gateway corresponding to the calling terminal at the current time is predicted based on historical traffic data of the gateway corresponding to the calling terminal.

[0079] It is determined whether the current time is located in a set time period.

[0080] If the current time is located in the set time period, the first bandwidth of the gateway corresponding to the calling terminal at the current time is predicted based on historical traffic data of the gateway corresponding to the calling terminal in the set time period.

[0081] Here, the set time period can be the busy time of the gateway or the idle time of the gateway, for example, 7:00-12:00 is the busy time, and 1:00-7:00 is the idle time.

[0082] For example, if the current time corresponds to the idle time, the 75th percentile value of the maximum downlink traffic cycle peak value data of the gateway in the past seven days can be taken as the first bandwidth / second bandwidth.

[0083] For example, if the current time corresponds to the busy time, the 75th percentile value of the maximum downlink traffic cycle peak value data of the gateway in the past seven days can be taken as the first bandwidth / second bandwidth.

[0084] If the soft probe platform first judges that there is no traffic corresponding to the busy time or idle time period of the gateway in the past seven days, the valid gateway data of the physical position adjacent (i.e. other gateway under the same optical line terminal (OLT)) is used.

[0085] Figure 2 is a flowchart of the bandwidth estimation of the probe platform. First, it is judged whether the current time is the busy time. If it is the busy time, it is judged whether there is video traffic in the past seven days. If there is, the maximum downlink traffic cycle peak value of the gateway in the past seven days is obtained, and the bandwidth and video capacity under the bandwidth are calculated according to the peak value.

[0086] If not busy time, it is judged whether there is video traffic of the gateway in the past seven days, if yes, the maximum downlink traffic periodic peak of the gateway in the past seven days is obtained, and the bandwidth and the video capability under the bandwidth are calculated according to the peak. If there is no video traffic of the gateway in the past seven days, other gateways under the same OLT are queried to obtain the maximum downlink traffic periodic peak.

[0087] In an embodiment, the third media capability information of the calling terminal is determined based on the first bandwidth of the gateway corresponding to the calling terminal at the current time and the first media capability information, including:

[0088] It is determined whether the first bandwidth supports the first media capability information;

[0089] If yes, the first media capability information is taken as the third media capability information;

[0090] If no, the fifth media capability information corresponding to the first bandwidth is taken as the third media capability information; the fifth media capability information is the maximum media capability information supported by the first bandwidth;

[0091] Correspondingly, the fourth media capability information of the called terminal is determined based on the second bandwidth of the gateway corresponding to the called terminal at the current time and the second media capability information, including:

[0092] It is determined whether the second bandwidth supports the second media capability information;

[0093] If yes, the second media capability information is taken as the fourth media capability information;

[0094] If no, the sixth media capability information corresponding to the second bandwidth is taken as the fourth media capability information; the sixth media capability information is the maximum media capability information supported by the second bandwidth.

[0095] For example, it is assumed that the first media capability information is 1080P30 frame, and the first bandwidth is 5Mbps. It can be seen that the first bandwidth is insufficient to support the first media capability information, and the fifth media capability information corresponding to the first bandwidth is 720P30 frame. Therefore, the third media capability information is 720P30 frame.

[0096] Similarly, the fourth media capability information of the called terminal can be obtained according to the above method.

[0097] In actual application, if the first bandwidth cannot support the second media capability information, the video resolution is reduced. When the resolution is reduced to 4CIF and still cannot meet the requirement, the frame rate is reduced.

[0098] In an embodiment, determining the final media capability information of the call initiated by the calling terminal based on the third media capability information and the fourth media capability information comprises:

[0099] Determining the minimum value of the third media capability information and the fourth media capability information as the final media capability information.

[0100] To avoid call lag, the minimum value of the third media capability information and the fourth media capability information can be set as the final media capability information of the call initiated by the calling terminal, ensuring that both ends of the call can support the media capability information.

[0101] In an embodiment, the call request further comprises default media capability information of the calling terminal, and the response message further comprises default media capability information of the called terminal; and determining the first media capability information of the calling terminal based on the device information of the calling terminal in the call request of the calling terminal comprises:

[0102] Querying a preset capability database based on the device information of the calling terminal to obtain the maximum media capability information corresponding to the calling terminal; the preset database stores maximum media capability information corresponding to the device information of the calling terminal and maximum media capability information corresponding to the device information of the called terminal;

[0103] Determining the first media capability information of the calling terminal based on the default media capability information and the maximum media capability information of the calling terminal;

[0104] Correspondingly, determining the second media capability information of the called terminal based on the device information of the called terminal in the response message of the called terminal to the call request comprises:

[0105] Querying the preset database based on the device information of the called terminal to obtain the maximum media capability information corresponding to the called terminal;

[0106] Determining the second media capability information of the called terminal based on the default media capability information and the maximum media capability information of the called terminal.

[0107] Here, the first media capability information is the minimum value of the default media capability information and the maximum media capability information of the calling terminal, and the second media capability information is the minimum value of the default media capability information and the maximum media capability information of the called terminal.

[0108] For example, the terminal also carries the audio and video coding capability description information of the terminal itself by default in the message of initiating a call. After the signaling server receives the message of initiating a call, for example, an INVITE message, the signaling server parses the SDP and sends the audio and video coding capability description information and the device information in the SDP to the capability platform. The capability platform will query the audio and video coding capability of the terminal in the capability database according to the device model and the software version. The minimum media capability is obtained by comparing the audio and video coding capability configured in the database with the default audio and video coding capability carried by the terminal signaling. For example, for a certain terminal, the signaling carries a video resolution frame rate of 1080P30 frames, but the platform capability database is configured with a capability of 720P30 frames. Therefore, the actual video capability supported by the terminal is 720P30 frames.

[0109] Figure 3 The above is an embodiment case taking the SIP protocol as an example. The embodiment case includes five network units, namely, a set-top box A, a signaling server, a capability platform, a soft probe platform and a set-top box B. In the case, the default video capability provided by the APP of the set-top box A and the set-top box B is 1080P30 frames. The video capability calculated by the capability platform and the soft probe platform is 4CIF30 frames (mainly limited by the network bandwidth of the set-top box A).

[0110] Firstly, the set-top box A sends a SIP INVITE 1080P30fps to the signaling server, wherein the SIP INVITE is a call invitation, and 1080P30fps is the default video capability of the set-top box A.

[0111] The signaling server sends the MAC address, the software version number VER and the default video capability 1080P30fps of the set-top box A to the capability platform. The capability platform will query the video capability in the database of the terminal according to the device model or the software version, and obtain the minimum media capability A by comparing the video capability configured in the database with the video capability carried by the set-top box signaling. As shown in Figure 3 The capability platform obtains the minimum media capability A as 1080P30fps.

[0112] The capability platform queries the gateway SN corresponding to the set-top box A according to the MAC of the set-top box A, and further sends the gateway SN corresponding to the set-top box A to the soft probe platform to query the maximum predicted actual bandwidth B of the gateway at the current time. It is calculated whether the video capability A can be supported by the bandwidth B. If not, the video resolution is reduced. When the resolution is reduced to 4CIF, it is still not met, and then the frame rate is reduced. As shown in Figure 3 The final video capability that can be supported is 4CIF30fps.

[0113] The signaling server writes the final video capability 4CIF30fps calculated into the media description information of the call request and delivers it to the set-top box B (as shown inFigure 3 SIP INVITE 4CIF 30fps), the set-top box B sends a response carrying video capability to the set-top box A (e.g. Figure 3 SIP INVITE 4CIF 30fps), the default video capability of the set-top box B is 4CIF 30fps.

[0114] The signaling server repeats the above process, and the final video capability of the set-top box B is 4CIF 30fps. Finally, 4CIF 30fps is sent to the set-top box A. The set-top box A can establish a media channel based on the video capability to initiate video and audio streaming.

[0115] The embodiment of the present application can predict the current actual bandwidth of both parties of a video call according to the historical bandwidth traffic information of the set-top box in the same time period of the user's home network based on the soft probe platform, and calculate the optimal resolution of the video call of both parties according to the bandwidth prediction value, which greatly avoids the occurrence of video stuttering caused by network conditions in the early stage of call establishment. The embodiment of the present application can avoid the occurrence of problems such as high terminal load and video stuttering in the early stage of call establishment caused by insufficient hardware capability by establishing a terminal capability platform to quickly match the video encoding capability of the set-top box on the capability platform side. The advantage of the embodiment of the present application is that the reasonable video capability can be dynamically set according to the model of the terminal, the software version and the historical gateway probe data of the home user in the media negotiation stage before the call is established, which avoids the case that the video resolution and frame rate greatly exceed the actual device and the current network bandwidth, and optimizes the call experience of the user.

[0116] It should be understood that the size of the serial number of each step in the above embodiment does not mean the order of execution, and the execution order of each process should be determined according to its function and inherent logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.

[0117] It should be understood that when used in the present specification and the appended claims, the terms "comprise" and "include" indicate the presence of described features, integers, steps, operations, elements, and / or components, but do not exclude one or more other features, integers, steps, operations, elements, components, and / or sets thereof.

[0118] It should be noted that the technical solutions described in the embodiments of the present application can be combined arbitrarily without conflict.

[0119] In addition, in the embodiments of the present application, "first", "second", and the like are used to distinguish similar objects, and do not necessarily mean a specific order or sequence.

[0120] The media capability negotiation device provided by the embodiment of the present application comprises:

[0121] The first determining module is configured to determine first media capability information of the calling terminal based on device information of the calling terminal carried in a call request of the calling terminal, and determine second media capability information of the called terminal based on device information of the called terminal carried in a response message of the called terminal to the call request.

[0122] The second determining module is configured to determine third media capability information of the calling terminal based on the first bandwidth of the gateway corresponding to the calling terminal at the current time and the first media capability information, and determine fourth media capability information of the called terminal based on the second bandwidth of the gateway corresponding to the called terminal at the current time and the second media capability information.

[0123] The third determining module is configured to determine final media capability information of the calling terminal for initiating a call based on the third media capability information and the fourth media capability information.

[0124] In an embodiment, after the final media capability information of the calling terminal for initiating a call is determined, the apparatus further comprises:

[0125] The adding module is configured to add the final media capability information to a response message of the called terminal.

[0126] The sending module is configured to send the response message to the calling terminal.

[0127] In an embodiment, the call request further comprises a MAC address of the calling terminal, and the response message further comprises a MAC address of the called terminal; the apparatus further comprises:

[0128] The querying module is configured to query the gateway corresponding to the calling terminal based on the MAC address of the calling terminal, and query the gateway corresponding to the called terminal based on the MAC address of the called terminal.

[0129] The predicting module is configured to predict the first bandwidth of the gateway corresponding to the calling terminal at the current time based on historical traffic data of the gateway corresponding to the calling terminal, and predict the second bandwidth of the gateway corresponding to the called terminal at the current time based on historical traffic data of the gateway corresponding to the called terminal.

[0130] In an embodiment, the predicting module is specifically configured to:

[0131] determine whether the current time is located in a set time period;

[0132] if the current time is located in the set time period, predict the first bandwidth of the gateway corresponding to the calling terminal at the current time based on historical traffic data of the gateway corresponding to the calling terminal in the set time period.

[0133] In an embodiment, the second determining module is specifically configured to:

[0134] determine whether the first bandwidth supports the first media capability information;

[0135] if yes, take the first media capability information as the third media capability information;

[0136] if no, take fifth media capability information corresponding to the first bandwidth as the third media capability information; the fifth media capability information is the maximum media capability information supported by the first bandwidth;

[0137] Correspondingly, the determining of the fourth media capability information of the called terminal based on the second bandwidth of the gateway corresponding to the called terminal at the current time and the second media capability information comprises:

[0138] determining whether the second bandwidth supports the second media capability information;

[0139] if yes, taking the second media capability information as the fourth media capability information;

[0140] if no, taking sixth media capability information corresponding to the second bandwidth as the fourth media capability information; the sixth media capability information is the maximum media capability information supported by the second bandwidth.

[0141] In an embodiment, the third determining module is specifically configured to:

[0142] determining the minimum value between the third media capability information and the fourth media capability information as the final media capability information.

[0143] In an embodiment, the call request further comprises default media capability information of the calling terminal, and the response message further comprises default media capability information of the called terminal; the first determining module is specifically configured to:

[0144] querying a preset capability database based on the device information of the calling terminal to obtain the maximum media capability information corresponding to the calling terminal; the preset database stores the maximum media capability information corresponding to the device information of the calling terminal and the maximum media capability information corresponding to the device information of the called terminal;

[0145] determining the first media capability information of the calling terminal based on the default media capability information and the maximum media capability information of the calling terminal;

[0146] Correspondingly, the second media capability information of the called terminal is determined based on the device information of the called terminal in the response message of the called terminal to the call request, comprising:

[0147] The preset database is queried based on the device information of the called terminal to obtain the maximum media capability information corresponding to the called terminal;

[0148] The second media capability information of the called terminal is determined based on the default media capability information and the maximum media capability information of the called terminal.

[0149] In actual application, the first determining module, the second determining module and the third determining module can be realized by a processor in an electronic device, such as a central processing unit (CPU), a digital signal processor (DSP), a microcontroller unit (MCU) or a field-programmable gate array (FPGA).

[0150] It should be noted that: the media capability negotiation device provided in the above embodiment is only used as an example for the division of the above modules when performing media capability negotiation. In actual application, the above processing can be completed by different modules according to needs, that is, the internal structure of the device is divided into different modules to complete all or part of the above-described processing. In addition, the media capability negotiation device and the media capability negotiation method provided in the above embodiment belong to the same concept, and the specific implementation process is described in the method embodiment, which will not be repeated here.

[0151] The above media capability negotiation device can be in the form of an image file, which can be executed in the form of a container or a virtual machine to realize the media capability negotiation method described in the present application. Of course, it is not limited to the form of an image file, and any software form that can realize the media capability negotiation method described in the present application is within the protection scope of the present application.

[0152] Based on the hardware implementation of the above program modules, and in order to realize the method of the present application, the present application further provides an electronic device, and the above media capability negotiation method is realized by a processor of the electronic device. Figure 4 The hardware composition structure of the electronic device of the present application embodiment is shown in FIG. 4, which includes: Figure 4

[0153] The communication interface 401 can interact with other devices such as network devices to exchange information;

[0154] ​The processor 402 is connected with the communication interface 401 to realize information interaction with other devices, and is used for running a computer program to execute the method provided by one or more technical solutions of the electronic device. The computer program is stored in the memory 403.

[0155] Of course, in actual application, various components in the electronic device are coupled together through the bus system 404. It can be understood that the bus system 404 is used to realize the connection and communication between the components. The bus system includes not only a data bus, but also a power supply bus, a control bus and a state signal bus. However, in order to clearly illustrate, all kinds of buses are marked as the bus system 404 in the Figure 4

[0156] The memory 403 in the embodiment of the present application is used to store various types of data to support the operation of the electronic device. Examples of the data include any computer program used for operating on the electronic device.

[0157] In the present application, the electronic device can be a single hardware device, or a cluster composed of multiple hardware devices, such as a cloud computing platform. The so-called cloud computing platform is a cluster device that organizes multiple independent electronic device physical hardware resources into a pool of resources, and provides the required virtual resources and services to the outside.

[0158] The memory 403 in the embodiment of the present application is used to store various types of data to support the operation of the electronic device. Examples of the data include any computer program used for operating on the electronic device.

[0159] ​It can be understood that the memory 403 can be a volatile memory or a non-volatile memory, and can also include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a ferromagnetic random access memory (FRAM), a flash memory, a magnetic surface memory, an optical disc, or a compact disc read-only memory (CD-ROM); the magnetic surface memory can be a disk memory or a tape memory. The volatile memory can be a random access memory (RAM) used as an external cache. By way of example but not limitation, many forms of RAM can be used, such as static random access memory (SRAM), synchronous static random access memory (SSRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus random access memory (DRRAM).The memory described in the embodiments of the present application is intended to include, but not limited to, these and any other suitable type of memory.

[0160] The method disclosed in the embodiments of the present application can be applied to a processor or implemented by the processor. The processor can be an integrated circuit chip with a signal processing capability. In the implementation process, the steps of the above method can be completed by hardware integrated logic circuit or software form of instructions in the processor. The processor can be a general processor, DSP, or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, etc. The processor can implement or execute the disclosed methods, steps and logic block diagrams in the embodiments of the present application. The general processor can be a microprocessor or any conventional processor, etc. In combination with the steps of the method disclosed in the embodiments of the present application, the hardware decoding processor can be directly embodied to execute the above method, or executed by the combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium, which is located in a memory, and the processor reads the program in the memory to complete the steps of the above method in combination with the hardware thereof.

[0161] Alternatively, the processor implements the corresponding processes realized by the electronic device in each method of the embodiments of the present application when executing the program, which will not be described herein again for brevity.

[0162] In the exemplary embodiments, the embodiments of the present application also provide a storage medium, i.e., a computer storage medium, specifically a computer readable storage medium, for example, including a first memory for storing a computer program, which can be executed by the processor of the electronic device to complete the steps of the above method. The computer readable storage medium can be FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface memory, optical disc, or CD-ROM, etc.

[0163] In several embodiments provided in the present application, it should be understood that the disclosed apparatus, electronic device and method can be implemented by other manners. The apparatus embodiments described above are only schematic, for example, the division of the units is only a logical function division, and actual implementation can have another division manner, such as: multiple units or components can be combined, or integrated into another system, or some features can be ignored, or not executed. In addition, the coupling or direct coupling or communication connection between the displayed or discussed components can be indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.

[0164] The units described as separate components above can or can not be physically separate, and the components shown as units can or can not be physical units, that is, they can be located in one place or distributed on multiple network units; part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment.

[0165] In addition, the functional units in each embodiment of the present application can be integrated into one processing unit, or each unit can be a separate unit, or two or more units can be integrated into one unit; the integrated unit can be realized in the form of hardware or in the form of hardware plus software functional units.

[0166] Those skilled in the art can understand that all or part of the steps of the above-mentioned method embodiments can be completed by program instruction related hardware, and the foregoing program can be stored in a computer readable storage medium, and the program executes the steps including the above-mentioned method embodiments when executed; and the foregoing storage medium includes mobile storage devices, ROM, RAM, magnetic discs or optical discs and various storage program codes.

[0167] Alternatively, the integrated units of the present application, if implemented in the form of software functional modules and sold or used as independent products, can also be stored in a computer readable storage medium. Based on this understanding, the technical solutions of the embodiments of the present application can be embodied in the form of software products, and the computer software products are stored in a storage medium, including a plurality of instructions for causing a computer device (which can be a personal computer, an electronic device, or a network device, etc.) to execute all or part of the methods described in the embodiments of the present application. The foregoing storage medium includes mobile storage devices, ROM, RAM, magnetic discs or optical discs and various storage program codes.

[0168] In an exemplary embodiment, the embodiments of the present application also provide a computer program product, which includes a computer program executable by the processor 402 of the electronic device to complete the steps of the media capability negotiation method described in the embodiments of the present application.

[0169] It should be noted that the technical solutions described in the embodiments of the present application can be combined arbitrarily without conflict.

[0170] In addition, in the present application, "first", "second", etc. are used to distinguish similar objects, and do not necessarily describe a specific order or sequence.

[0171] The above merely provides the specific implementation of the present application, but the protection scope of the present application is not limited to this. Any person skilled in the art can easily think of the changes or replacements within the technical range disclosed by the present application, which should be covered in the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A media capability negotiation method, characterized in that, The method includes: Based on the device information of the calling terminal carried in the call request of the calling terminal, the first media capability information of the calling terminal is determined; and based on the device information of the called terminal carried in the response message of the called terminal to the call request, the second media capability information of the called terminal is determined; the device information includes one or more of the following: terminal hardware model, media access control address, and software version number; Based on the first bandwidth and the first media capability information of the gateway corresponding to the calling terminal at the current time, the third media capability information of the calling terminal is determined; and based on the second bandwidth and the second media capability information of the gateway corresponding to the called terminal at the current time, the fourth media capability information of the called terminal is determined. Based on the third media capability information and the fourth media capability information, the final media capability information for the calling terminal to initiate the call is determined.

2. The method according to claim 1, characterized in that, After determining the final media capability information of the calling terminal that initiated the call, the method further includes: Add the final media capability information to the response message of the called terminal; The response message is sent to the calling terminal.

3. The method according to claim 1, characterized in that, The call request also includes the media access control (MAC) address of the calling terminal, and the response message also includes the MAC address of the called terminal; the method further includes: Based on the MAC address of the calling terminal, query the gateway corresponding to the calling terminal; and based on the MAC address of the called terminal, query the gateway corresponding to the called terminal. Based on the historical traffic data of the gateway corresponding to the calling terminal, a first bandwidth of the gateway corresponding to the calling terminal at the current time is predicted; and based on the historical traffic data of the gateway corresponding to the called terminal, a second bandwidth of the gateway corresponding to the called terminal at the current time is predicted.

4. The method according to claim 3, characterized in that, The step of predicting the first bandwidth of the gateway corresponding to the calling terminal at the current time based on the historical traffic data of the gateway corresponding to the calling terminal includes: Determine whether the current time falls within a set time period; If the current time falls within the set time period, then based on the historical traffic data of the gateway corresponding to the calling terminal during the set time period, the first bandwidth of the gateway corresponding to the calling terminal at the current time is predicted.

5. The method according to claim 1, characterized in that, The step of determining the third media capability information of the calling terminal based on the first bandwidth and the first media capability information of the gateway corresponding to the calling terminal at the current time includes: Determine whether the first bandwidth supports the first media capability information; If supported, the first media capability information shall be used as the third media capability information; If not supported, the fifth media capability information corresponding to the first bandwidth is used as the third media capability information; the fifth media capability information is the maximum media capability information supported by the first bandwidth. Correspondingly, determining the fourth media capability information of the called terminal based on the second bandwidth and the second media capability information of the gateway corresponding to the called terminal at the current time includes: Determine whether the second bandwidth supports the second media capability information; If supported, the second media capability information will be used as the fourth media capability information; If not supported, the sixth media capability information corresponding to the second bandwidth is used as the fourth media capability information; the sixth media capability information is the maximum media capability information supported by the second bandwidth.

6. The method according to claim 1, characterized in that, Based on the third media capability information and the fourth media capability information, the final media capability information for the call initiated by the calling terminal is determined, including: The minimum value between the third media capability information and the fourth media capability information is determined as the final media capability information.

7. The method according to claim 1, characterized in that, The call request also includes the default media capability information of the calling terminal, and the response message also includes the default media capability information of the called terminal; determining the first media capability information of the calling terminal based on the device information of the calling terminal in the call request includes: Based on the device information of the calling terminal, a preset capability database is queried to obtain the maximum media capability information corresponding to the calling terminal; the preset database stores the maximum media capability information corresponding to the device information of the calling terminal and the maximum media capability information corresponding to the device information of the called terminal. Based on the default media capability information and maximum media capability information of the calling terminal, the first media capability information of the calling terminal is determined; Correspondingly, determining the second media capability information of the called terminal based on the device information of the called terminal in the response message of the called terminal to the call request includes: Based on the device information of the called terminal, the preset database is queried to obtain the maximum media capability information corresponding to the called terminal; Based on the default media capability information and maximum media capability information of the called terminal, the second media capability information of the called terminal is determined.

8. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the media capability negotiation method according to any one of claims 1 to 7.

9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the media capability negotiation method as described in claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, the computer program including program instructions that, when executed by a processor, cause the processor to perform the media capability negotiation method as described in claims 1 to 7.

Citation Information

Patent Citations

  • Configuration processing method and device

    CN101854671A

  • Method and call controlling network element for determining media ability

    CN104539588A

  • Video polyphonic ringtone pushing method, server, electronic equipment and storage medium

    CN112511702A