Media negotiation method, apparatus, and system
Patent Information
- Application Number
- JP2025575829
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-18
- Filing Date
- 2024-07-30
- Publication Date
- 2026-09-08
AI Technical Summary
【0084】 第3の態様から第9の態様で提供される解決策は、第1の態様または第2の態様で提供される方法を実施する、または協働して実施するために使用され、したがって、第1の態様または第2の態様と同じ、またはそれに対応する有益な効果を達成することができる。ここでは詳細を繰り返さない。
Smart Images

Figure 2026530289000001_ABST
Abstract
Description
Technical Field
[0001] The present application claims priority from Chinese Patent Application No. 202311052515.1, entitled "MEDIA NEGOTIATION METHOD, APPARATUS, AND SYSTEM", filed with the China National Intellectual Property Administration on August 18, 2023, which is incorporated herein by reference in its entirety.
[0002] The present application relates to the field of communications, and more specifically, to a media negotiation method, apparatus, and system. Background Art
[0003] Internet Protocol (IP) Multimedia Subsystem (IMS) is a network architecture designed to provide multimedia communication services.
[0004] Within an IMS, an IMS Data Channel Application (DC App) can provide users with richer communication services in addition to audio and video calls. For example, users can use data channel applications for various communications such as screen sharing, location sharing, and overlaying augmented reality (AR) effects.
[0005] Currently, an IMS DC App running on a communication device can generate session description protocol (SDP) information via the WebRTC application programming interface (API), but it cannot perform media negotiation over the data channel with an IMS DC App running on a peer communication device. Therefore, providing media negotiation services for the data channel to the IMS DC App is an urgent issue that needs to be resolved. [Overview of the project]
[0006] This application provides a media negotiation method, apparatus, and system for providing media negotiation services for data channels for IMS DC applications. [Means for solving the problem]
[0007] According to a first embodiment, a media negotiation method is provided. The method may be performed by a first communication device or by a component of the first communication device (e.g., a chip or circuit). For example, the first communication device may be a first terminal device.
[0008] The method includes the framework layer receiving first media description information from a first application. The first media description information is a description of a media resource for a first data channel, provided by the first application, and the first data channel is a channel used to transmit application data generated or consumed by the first application between a first communication device and a second communication device, with both the framework layer and the first application operating on the first communication device. The framework layer transmits first SDP offer information to a second communication device via an IMS network element. The first SDP offer information includes the first media description information. The framework layer receives first SDP answer information from the second communication device via an IMS network element. The first SDP answer information includes second media description information, which is an answer to the first media description information. The framework layer transmits the second media description information to the first application. The framework layer includes IMS components, and the first application is an IMS DC application.
[0009] According to the aforementioned technical solution, a first application (IMS DC application) running on a first communication device may transmit to a framework layer / IMS component running on the first communication device descriptive information (first media description information) of the media resources of a first data channel, provided by the first application. The framework layer may transmit first SDP offer information, including the first media description information, to a second communication device. After receiving the first SDP offer information, the second communication device may transmit first SDP answer information, including second media description information, to the framework layer. The second media description information is the second communication device's answer to the first media description information. In this way, a media negotiation service for a data channel can be provided to the IMS DC application.
[0010] Referring to the first aspect, in some implementations of the first aspect, the first SDP offer information further includes a third media description information and / or a fourth media description information, and the first SDP answer information further includes a fifth media description information and / or a sixth media description information. The third media description information is a description of the media resources of an audio channel, provided by the framework layer, which is used to transmit audio data for the call service of the first communication device. The fourth media description information is a description of the media resources of a video channel, provided by the framework layer, for transmitting video data for the call service of the first communication device. The fifth media description information is an answer to the fifth media description information. The sixth media description information is an answer to the sixth media description information.
[0011] According to the solution described above, the framework layer operating on the first communication device may combine the media resource description information for the first data channel (first media description information), the media resource description information for the audio channel (third media description information), and / or the media resource description information for the video channel (fourth media description information) with the first SDP offer information and transmit the first SDP offer information to the second communication device. The second communication device may also combine the second media description information, the fifth media description information, and / or the sixth media description information with the first SDP answer information and transmit the first SDP answer information to the framework layer operating on the first communication device.
[0012] Referring to the first embodiment, in some implementations of the first embodiment, the first SDP offer information and the first SDP answer information each indicate a correspondence between the first application and the first data channel.
[0013] According to the solution described above, if one IMS session supports only one IMS DC application and the second communication device has not downloaded the first application, the first SDP offer information indicates the correspondence between the first application and the first data channel, and as a result, the second communication device can download the first application based on the correspondence between the first application and the first data channel. If one IMS session supports multiple IMS DC applications, the first SDP offer information indicates the correspondence between the first application and the first data channel, and as a result, the second communication device can know which application is using the first data channel.
[0014] Referring to the first embodiment, in some implementations of the first embodiment, the first media description information and the second media description information each include a first attribute row and a second attribute row. The first attribute row includes parameter information for the first data channel, the parameter information includes an identifier for the first data channel, and the second attribute row includes an identifier for the first application and an identifier for the first data channel. Alternatively, the first media description information and the second media description information each include a third attribute row. The third attribute row includes parameter information for the first data channel and an identifier for the first application, the parameter information includes an identifier for the first data channel.
[0015] Referring to the first aspect, in some implementations of the first aspect, the method further includes the framework layer receiving a first Quality of Service (QoS) parameter set from a first application. The first QoS parameter set includes at least one QoS parameter for a first data channel provided by the first application. The first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information. The first SDP answer information further indicates the correspondence between a second QoS parameter set and the second media description information, where the second QoS parameter set is the answer of the second communication device to the first QoS parameter set.
[0016] Referring to the first aspect, in some implementations of the first aspect, the first media description information includes a first QoS parameter set, and the second media description information includes a second QoS parameter set. According to the solution described above, the IMS DC application may be supported when specifying the QoS parameters of the DC.
[0017] Referring to the first embodiment, in some implementations of the first embodiment, at least one QoS parameter includes packet loss rate and latency.
[0018] Referring to the first aspect, in some implementations of the first aspect, the method further includes the framework layer further receiving first instruction information from the first application. The first instruction information indicates that the first data channel will use an independent bearer.
[0019] Referring to the first embodiment, in some implementations of the first embodiment, the first media description information and the seventh media description information are contained in the first m-segment and the second m-segment, respectively, within the first SDP offer information. The seventh media description information is a description of the media resource of the second data channel, which is a channel for transmitting application data generated or consumed by the first or second application between the first and second communication devices, or between the first and third communication devices. The second media description information and the eighth media description information are contained in the third m-segment and the fourth m-segment, respectively, within the first SDP answer information. The eighth media description information is an answer to the seventh media description information.
[0020] For example, if the first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information, the first media description information and the seventh media description information are included in the first and second m-segments, respectively, within the first SDP offer information, and the second and eighth media description information are included in the third and fourth m-segments, respectively, within the first SDP answer information. Alternatively, if the framework layer receives first instruction information from the first application, the first media description information and the seventh media description information are included in the first and second m-segments, respectively, within the first SDP offer information, and the second and eighth media description information are included in the third and fourth m-segments, respectively, within the first SDP answer information.
[0021] According to the aforementioned solution, if the second data channel is for transmitting application data generated or consumed by a second application between the first and second communication devices, different IMS DC applications can share a single IMS session context. If the second data channel is for transmitting application data generated or consumed by the first or second application between the first and third communication devices, the same communication devices may be supported when establishing data channels with multiple peer communication devices in a single IMS session context.
[0022] Referring to the first embodiment, in some implementations of the first embodiment, the first media description information and the seventh media description information are contained in the fifth m-segment within the first SDP offer information. The seventh media description information is a description of the media resource of the second data channel, which is a channel for transmitting application data generated or consumed by the first or second application between the first communication device and the second communication device, or between the first communication device and the third communication device. The second media description information and the eighth media description information are contained in the sixth m-segment within the first SDP answer information. The eighth media description information is an answer to the seventh media description information.
[0023] For example, if the first SDP offer information does not indicate a correspondence between the first QoS parameter set and the first media description information, and the framework layer does not receive the first instruction information from the first application, then the first media description information and the seventh media description information are included in the fifth m-segment within the first SDP offer information, and the second media description information and the eighth media description information are included in the sixth m-segment within the first SDP answer information.
[0024] According to the foregoing solution, when the second data channel is for transmitting application data generated or consumed by a second application between a first communication device and a second communication device, different IMS DC applications can share one IMS session context. When the second data channel is for transmitting application data generated or consumed by a first application or a second application between the first communication device and a third communication device, the same communication device can be supported when establishing data channels with a plurality of peer communication devices in one IMS session context.
[0025] With reference to the first aspect, in some implementations of the first aspect, the first communication device is a first terminal device, and the second communication device is a second terminal device or a server corresponding to a first application.
[0026] With reference to the first aspect, in some implementations of the first aspect, the IMS network element comprises a Proxy Call Session Control Function P-CSCF network element. The IMS network element is one or more IMS network elements in an IMS network.
[0027] According to a second aspect, a media negotiation method is provided. The method may be executed by a second communication device, or may be executed by a component of the second communication device (for example, a chip or a circuit. For example, the second communication device may be a second terminal device, or the second communication device may be a server corresponding to a first application.
[0028] A communication method includes: a framework layer receives first SDP offer information from a first communication device via an IMS network element. The first SDP offer information includes first media description information, the first media description information is description information of media resources of a first data channel, the first data channel is a channel between the first communication device and a second communication device that is used for transmitting application data generated or consumed by a first application, and the framework layer runs on the second communication device. The framework layer sends the first media description information to the first application. The first application runs on the second communication device. The framework layer receives second media description information from the first application. The second media description information is an answer of the first application to the first media description information. The framework layer sends first SDP answer information to the first communication device via the IMS network element. The first SDP answer information includes the second media description information.
[0029] According to the foregoing technical solution, after receiving first SDP offer information including first media description information from a first communication device, a framework layer / IMS component running on a second communication device may send the first media description information to a first application (IMS DC application) running on the second communication device. After receiving the first media description information, the first application sends the second media description information to the framework layer. The second media description information is an answer to the first media description information. The framework layer may send first SDP answer information including the second media description information to the first communication device. In this way, a media negotiation service for a data channel can be provided for the IMS DC application.
[0030] Referring to the second aspect, in some implementations of the second aspect, the first SDP offer information further includes a third media description information and / or a fourth media description information, and the first SDP answer information further includes a fifth media description information and / or a sixth media description information. The third media description information is a description of the media resources of an audio channel for the transmission of audio data for the call service of the first communication device, provided by the first communication device. The fourth media description information is a description of the media resources of a video channel for the transmission of video data for the call service of the first communication device, provided by the first communication device. The fifth media description information is an answer to the fifth media description information. The sixth media description information is an answer to the sixth media description information.
[0031] According to the solution described above, the framework layer operating on the first communication device may combine the media resource description information for the first data channel (first media description information), the media resource description information for the audio channel (third media description information), and / or the media resource description information for the video channel (fourth media description information) with the first SDP offer information and transmit the first SDP offer information to the second communication device. The second communication device may also combine the second media description information, the fifth media description information, and / or the sixth media description information with the first SDP answer information and transmit the first SDP answer information to the framework layer operating on the first communication device.
[0032] Referring to the second aspect, in some implementations of the second aspect, the first SDP offer information and the first SDP answer information each indicate a correspondence between the first application and the first data channel.
[0033] According to the solution described above, if one IMS session supports only one IMS DC application and the second communication device has not downloaded the first application, the first SDP offer information indicates the correspondence between the first application and the first data channel, and as a result, the second communication device can download the first application based on the correspondence between the first application and the first data channel. If one IMS session supports multiple IMS DC applications, the first SDP offer information indicates the correspondence between the first application and the first data channel, and as a result, the second communication device can know which application is using the first data channel.
[0034] Referring to the second aspect, in some implementations of the second aspect, the first media description information and the second media description information each include a first attribute row and a second attribute row. The first attribute row includes parameter information for the first data channel, the parameter information includes an identifier for the first data channel, and the second attribute row includes an identifier for the first application and an identifier for the first data channel. Alternatively, the first media description information and the second media description information each include a third attribute row. The third attribute row includes parameter information for the first data channel and an identifier for the first application, the parameter information includes an identifier for the first data channel.
[0035] Referring to the second aspect, in some implementations of the second aspect, the first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information. The first QoS parameter set includes at least one QoS parameter for the first data channel, provided by the first application. The first SDP answer information further indicates the correspondence between the second QoS parameter set and the second media description information. The second QoS parameter set is the answer of the second communication device to the first QoS parameter set.
[0036] Referring to the second aspect, in some implementations of the second aspect, the first media description information includes a first QoS parameter set, and the second media description information includes a second QoS parameter set. According to the solution described above, the IMS DC application may be supported when specifying the QoS parameters of the DC.
[0037] Referring to the second aspect, in some implementations of the second aspect, at least one QoS parameter includes packet loss rate and latency.
[0038] Referring to the second aspect, in some implementations of the second aspect, the first media description information and the seventh media description information are contained in the first m-segment and the second m-segment, respectively, within the first SDP offer information. The seventh media description information is a description of the media resource of the second data channel, which is a channel for transmitting application data generated or consumed by the first or second application between the first and second communication devices, or between the first and third communication devices. The second media description information and the eighth media description information are contained in the third m-segment and the fourth m-segment, respectively, within the first SDP answer information. The eighth media description information is an answer to the seventh media description information.
[0039] For example, if the first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information, the first media description information and the seventh media description information are included in the first and second m-segments, respectively, within the first SDP offer information, and the second and eighth media description information are included in the third and fourth m-segments, respectively, within the first SDP answer information. Alternatively, if the framework layer receives first instruction information from the first application, the first media description information and the seventh media description information are included in the first and second m-segments, respectively, within the first SDP offer information, and the second and eighth media description information are included in the third and fourth m-segments, respectively, within the first SDP answer information.
[0040] According to the aforementioned solution, if the second data channel is for transmitting application data generated or consumed by a second application between the first and second communication devices, different IMS DC applications can share a single IMS session context. If the second data channel is for transmitting application data generated or consumed by the first or second application between the first and third communication devices, the same communication devices may be supported when establishing data channels with multiple peer communication devices in a single IMS session context.
[0041] In relation to the second aspect, in some implementations of the second aspect, the first media description information and the seventh media description information are included in the fifth m-segment within the first SDP offer information. The seventh media description information is a description of the media resource of the second data channel, which is a channel for transmitting application data generated or consumed by the first or second application between the first communication device and the second communication device, or between the first communication device and the third communication device. The second media description information and the eighth media description information are included in the sixth m-segment within the first SDP answer information. The eighth media description information is an answer to the seventh media description information.
[0042] For example, if the first SDP offer information does not indicate a correspondence between the first QoS parameter set and the first media description information, and the framework layer does not receive the first instruction information from the first application, then the first media description information and the seventh media description information are included in the fifth m-segment within the first SDP offer information, and the second media description information and the eighth media description information are included in the sixth m-segment within the first SDP answer information.
[0043] According to the aforementioned solution, if the second data channel is for transmitting application data generated or consumed by a second application between the first and second communication devices, different IMS DC applications can share a single IMS session context. If the second data channel is for transmitting application data generated or consumed by the first or second application between the first and third communication devices, the same communication devices may be supported when establishing data channels with multiple peer communication devices in a single IMS session context.
[0044] Referring to the second aspect, in some implementations of the second aspect, the first communication device is a first terminal device, and the second communication device is a second terminal device or server corresponding to the first application.
[0045] Referring to the second aspect, in some implementations of the second aspect, the IMS network element includes a P-CSCF network element. The IMS network element is one or more IMS network elements within the IMS network.
[0046] According to a third aspect, a communication device is provided. The communication device includes a framework layer configured to receive first media description information from a first application. The first media description information is a description of media resources for a first data channel, provided by the first application, and the first data channel is a channel for transmitting application data generated or consumed by the first application between the first communication device and a second communication device, with both the framework layer and the first application operating on the first communication device.
[0047] The framework layer is further used to transmit the first SDP offer information to a second communication device via the IMS network element. The first SDP offer information includes the first media description information.
[0048] The framework layer is further used to receive the first SDP answer information from the second communication device. The first SDP answer information includes the second media description information, which is the answer to the first media description information.
[0049] The framework layer is further used to send the second media description information to the first application.
[0050] Referring to the third aspect, in some implementations of the third aspect, the first SDP offer information further includes third media description information and / or fourth media description information, and the first SDP answer information further includes fifth media description information and / or sixth media description information. The third media description information is a description of the media resources of an audio channel, provided by the framework layer, and the audio channel is used to transmit audio data for the call service of the first communication device. The fourth media description information is a description of the media resources of a video channel, provided by the framework layer, for transmitting video data for the call service of the first communication device. The fifth media description information is an answer to the fifth media description information. The sixth media description information is an answer to the sixth media description information.
[0051] Referring to the third aspect, in some implementations of the third aspect, the first SDP offer information and the first SDP answer information each indicate a correspondence between the first application and the first data channel.
[0052] Referring to the third aspect, in some implementations of the third aspect, the first media description information and the second media description information each include a first attribute row and a second attribute row. The first attribute row includes parameter information for the first data channel, the parameter information includes an identifier for the first data channel, and the second attribute row includes an identifier for the first application and an identifier for the first data channel. Alternatively, the first media description information and the second media description information each include a third attribute row. The third attribute row includes parameter information for the first data channel and an identifier for the first application, the parameter information includes an identifier for the first data channel.
[0053] Referring to the third aspect, in some implementations of the third aspect, the framework layer is further used to receive a first Quality of Service (QoS) parameter set from a first application. The first QoS parameter set includes at least one QoS parameter for a first data channel, provided by the first application. The first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information. The first SDP answer information further indicates the correspondence between a second QoS parameter set and the second media description information, where the second QoS parameter set is the answer of the second communication device to the first QoS parameter set.
[0054] Referring to the third aspect, in some implementations of the third aspect, the first media description information includes a first QoS parameter set, and the second media description information includes a second QoS parameter set.
[0055] Referring to the third aspect, in some implementations of the third aspect, at least one QoS parameter includes packet loss rate and latency.
[0056] Referring to the third aspect, in some implementations of the third aspect, the framework layer is further used to receive first directive information from the first application. The first directive information indicates that the first data channel will use an independent bearer.
[0057] Referring to the third aspect, in some implementations of the third aspect, the first media description information and the seventh media description information are contained in the first m-segment and the second m-segment, respectively, within the first SDP offer information. The seventh media description information is a description of the media resource of the second data channel, which is a channel for transmitting application data generated or consumed by the first or second application between the first and second communication devices, or between the first and third communication devices. The second media description information and the eighth media description information are contained in the third m-segment and the fourth m-segment, respectively, within the first SDP answer information. The eighth media description information is an answer to the seventh media description information.
[0058] Referring to the third aspect, in some implementations of the third aspect, the first media description information and the seventh media description information are contained in the fifth m-segment within the first SDP offer information. The seventh media description information is a description of the media resource of the second data channel, which is a channel for transmitting application data generated or consumed by the first or second application between the first and second communication devices, or between the first and third communication devices. The second and eighth media description information are contained in the sixth m-segment within the first SDP answer information. The eighth media description information is an answer to the seventh media description information.
[0059] Referring to the third aspect, in some implementations of the third aspect, the first communication device is a first terminal device, and the second communication device is a second terminal device or server corresponding to the first application.
[0060] Referring to the third aspect, in some implementations of the third aspect, the IMS network element includes a P-CSCF network element.
[0061] According to a fourth aspect, a framework layer is provided. The communication device includes a framework layer configured to receive first SDP offer information from a first communication device via an IMS network element. The first SDP offer information includes first media description information, the first media description information being of a media resource for a first data channel and being provided by a first application, the first data channel being a channel used for transmitting application data generated or consumed by the first application between the first communication device and a second communication device, the first application running on the first and second communication devices, and the framework layer running on the second communication device.
[0062] The framework layer is further used to send the first media description information to the first application.
[0063] The framework layer is further used to receive second media description information from the first application. The second media description information is an answer to the first media description information.
[0064] The framework layer is further used to transmit the first SDP answer information to the first communication device via the IMS network element. The first SDP answer information includes the second media description information.
[0065] Referring to the fourth aspect, in some implementations of the fourth aspect, the first SDP offer information further includes third media description information and / or fourth media description information, and the first SDP answer information further includes fifth media description information and / or sixth media description information. The third media description information is a description of the media resources of an audio channel for the transmission of audio data for the call service of the first communication device, provided by the first communication device. The fourth media description information is a description of the media resources of a video channel for the transmission of video data for the call service of the first communication device, provided by the first communication device. The fifth media description information is an answer to the fifth media description information. The sixth media description information is an answer to the sixth media description information.
[0066] Referring to the fourth aspect, in some implementations of the fourth aspect, the first SDP offer information and the first SDP answer information each indicate a correspondence between the first application and the first data channel.
[0067] Referring to the fourth aspect, in some implementations of the fourth aspect, the first media description information and the second media description information each include a first attribute row and a second attribute row. The first attribute row includes parameter information for the first data channel, the parameter information includes an identifier for the first data channel, and the second attribute row includes an identifier for the first application and an identifier for the first data channel. Alternatively, the first media description information and the second media description information each include a third attribute row. The third attribute row includes parameter information for the first data channel and an identifier for the first application, the parameter information includes an identifier for the first data channel.
[0068] Referring to the fourth aspect, in some implementations of the fourth aspect, the first SDP offer information further indicates a correspondence between a first QoS parameter set and first media description information. The first QoS parameter set includes at least one QoS parameter for a first data channel provided by a first application. The first SDP answer information further indicates a correspondence between a second QoS parameter set and second media description information. The second QoS parameter set is the answer of the second communication device to the first QoS parameter set.
[0069] Referring to the fourth aspect, in some implementations of the fourth aspect, the first media description information includes a first QoS parameter set, and the second media description information includes a second QoS parameter set.
[0070] Referring to the fourth aspect, in some implementations of the fourth aspect, at least one QoS parameter includes packet loss rate and latency.
[0071] Referring to the fourth aspect, in some implementations of the fourth aspect, the first media description information and the seventh media description information are contained in the first m-segment and the second m-segment, respectively, within the first SDP offer information. The seventh media description information is a description of the media resource of the second data channel, which is a channel for transmitting application data generated or consumed by the first or second application between the first and second communication devices, or between the first and third communication devices. The second media description information and the eighth media description information are contained in the third m-segment and the fourth m-segment, respectively, within the first SDP answer information. The eighth media description information is an answer to the seventh media description information.
[0072] Referring to the fourth aspect, in some implementations of the fourth aspect, the first media description information and the seventh media description information are contained in the fifth m-segment within the first SDP offer information. The seventh media description information is a description of the media resource of the second data channel, which is a channel for transmitting application data generated or consumed by the first or second application between the first and second communication devices, or between the first and third communication devices. The second media description information and the eighth media description information are contained in the sixth m-segment within the first SDP answer information. The eighth media description information is an answer to the seventh media description information.
[0073] Referring to the fourth aspect, in some implementations of the fourth aspect, the first communication device is a first terminal device, and the second communication device is a second terminal device or server corresponding to the first application.
[0074] Referring to the fourth aspect, in some implementations of the fourth aspect, the IMS network element includes a P-CSCF network element.
[0075] According to a fifth aspect, a processor is provided. The processor is configured to perform the methods provided in the first or second aspect. In the processes performing these methods, the processes for transmitting the aforementioned information and for acquiring / receiving the aforementioned information in the aforementioned methods can be understood as processes for outputting the aforementioned information by the processor and processes for receiving the aforementioned input information by the processor. When outputting information, the processor outputs the information to a transceiver, and as a result, the transceiver transmits the information. After the aforementioned information has been output by the processor, further processing of the information may be required, and the processed information may arrive at the transceiver. Similarly, when the processor receives the aforementioned input information, the transceiver acquires / receives the information and inputs the information to the processor. Furthermore, after the transceiver has received the aforementioned information, further processing of the information may be required, and the processed information is input to the processor.
[0076] Based on the aforementioned principles, for example, receiving media description information as described above can be understood as receiving input information by the processor.
[0077] Unless otherwise specified, if the operations associated with the processor, such as transmission, transmission, and acquisition / reception, do not contradict the actual function or internal logic of the operation in the relevant description, all operations may be more generally understood as the operations of the processor, such as output, reception, and input, rather than the transmission, transmission, and reception operations performed directly by the radio frequency circuit and antenna.
[0078] In one embodiment, the processor may be a processor specifically configured to perform these methods, or it may be a processor that executes computer instructions in memory to perform these methods, such as a general-purpose processor. The memory may be non-transitory memory, such as read-only memory (ROM). The memory and processor may be integrated on the same chip, or they may be located separately on different chips. The type of memory, as well as the arrangement of the memory and processor, is not limited to the embodiments of this application.
[0079] According to the sixth aspect, a computer-readable storage medium is provided. The computer-readable storage medium stores program code to be executed by a device, and the program code is used to execute a method provided in the first or second aspect.
[0080] According to the seventh aspect, a computer program product including instructions is provided. When the computer program product is executed on a computer, the computer is made to perform the method provided in the first or second aspect.
[0081] According to the eighth aspect, a chip is provided. The chip includes a processor and a communication interface. The processor reads instructions stored in memory through the communication interface in order to perform the method provided in the first or second aspect.
[0082] Optionally, in one implementation configuration, the chip may further include memory. The memory stores instructions, and the processor is configured to execute the instructions stored in the memory. When an instruction is executed, the processor is configured to perform the method provided in the first or second embodiment.
[0083] According to the ninth aspect, a communication system is provided. The communication system includes a first communication device configured to perform the method shown in the first aspect, and a second communication device configured to perform the method shown in the second aspect.
[0084] The solutions provided in the third through ninth aspects are used to implement, or in conjunction with, the methods provided in the first or second aspect, and thus can achieve the same or corresponding beneficial effects as those of the first or second aspect. Details are not repeated here. [Brief explanation of the drawing]
[0085] [Figure 1] This is a diagram of a network architecture applicable to one embodiment of this application. [Figure 2] This is a diagram of another network architecture applicable to one embodiment of this application. [Figure 3] This is a diagram of the data channel protocol stack based on SCTP / DTLS / UDP / IP. [Figure 4] This is a diagram of the Offer / Answer model. [Figure 5] This is a model diagram of media description information for audio channels, video channels, and data channels in a single IMS session. [Figure 6] This is an example of an architecture diagram for a terminal device whose Android operating system supports IMS DC. [Figure 7] This is a diagram of the WebRTC architecture. [Figure 8] This is an example of SDP information. [Figure 9] This is a diagram illustrating the interaction between a web application and the JSEP implementation. [Figure 10] This is a diagram illustrating the WebRTC call procedure. [Figure 11] This is an example of an architectural diagram of a terminal device supporting IMS DC according to one embodiment of this application. [Figure 12] This is an illustrative flowchart of a media negotiation method according to one embodiment of this application. [Figure 13] This is an example of a correspondence between the first application and the first data channel. [Figure 14] This is another example of the correspondence between the first application and the first data channel. [Figure 15] This is an example of QoS parameters. [Figure 16] This is an example of QoS parameters and the correspondence between the first application and the first data channel. [Figure 17] This is an example of QoS parameters and the correspondence between the first application and the first data channel. [Figure 18] This is an example of combining media description information from different data channels. [Figure 19] This is an example of splitting media description information for different data channels. [Figure 20] This is another illustrative flowchart of a media negotiation method according to one embodiment of the present application. [Figure 21A] This is another illustrative flowchart of a media negotiation method according to one embodiment of the present application. [Figure 21B] This is another illustrative flowchart of a media negotiation method according to one embodiment of the present application. [Figure 22A] This is another illustrative flowchart of a media negotiation method according to one embodiment of the present application. [Figure 22B] This is another illustrative flowchart of a media negotiation method according to one embodiment of the present application. [Figure 23] This is a schematic block diagram of a communication device according to one embodiment of the present application. [Figure 24] This is a diagram of another communication device according to one embodiment of this application. [Figure 25]This is a diagram of a chip system according to one embodiment of the present application. [Modes for carrying out the invention]
[0086] To further clarify the purpose, technical solutions, and advantages of this application, the following describes this application in more detail with reference to the accompanying drawings. Certain operating methods in the method embodiments may also apply to apparatus embodiments or system embodiments. In the description of this application, unless otherwise specified, “multiple” means two or more.
[0087] In the various embodiments of this application, unless otherwise specifically stated or there is a logical inconsistency, the terminology and / or descriptions in different embodiments are consistent and can be referenced to one another, and the technical features in different embodiments can be combined based on their internal logical relationships to form new embodiments.
[0088] It should be understood that the various numerical values in this application are used merely for distinction to facilitate explanation and are not used to limit the scope of this application. The sequence numbers of the processes mentioned above do not imply an execution order, and the execution order of the processes should be determined based on the function and internal logic of the processes.
[0089] In the specification, claims, and accompanying drawings of this application, terms such as “first,” “second,” “third,” “fourth,” and various other term numbers (if any) are intended to distinguish similar subjects, but not necessarily to describe a specific order or sequence. It should be understood that terms used in such a manner are interchangeable in appropriate contexts, so that the embodiments described herein may be carried out in an order other than that illustrated or described herein. In addition, the terms “includes,” “has,” and any other variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device including a list of steps or units is not necessarily limited to the explicitly listed steps or units, and may include other steps or units not explicitly listed or specific to such process, method, product, or device.
[0090] The technical solutions provided in this application may be applied to various communication systems, such as fifth-generation (5G) communication systems (also known as new radio (NR) systems), fourth-generation (4G) communication systems (also known as long-term evolution (LTE) systems), LTE frequency division duplex (FDD) systems, and LTE time division duplex (TDD) systems. The technical solutions provided in this application may be further applied to future communication systems, such as sixth-generation (6G) mobile communication systems.
[0091] A communication system 100 applicable to one embodiment of this application is described below with reference to Figure 1, by example. It should be understood that the communication systems described in this application are merely examples and should not constitute any limitation to this application. The following is a brief description of each network element (or functional network element, functional entity, node, device, etc.) shown in Figure 1.
[0092] 1. User equipment (UE): A UE may be any device capable of accessing the network and may also be called terminal equipment, terminal device, access terminal, subscriber unit, subscriber station, mobile station (MS), mobile terminal (MT), remote station, remote terminal, mobile device, user terminal, terminal, wireless communication device, user agent, or user equipment. A UE may also be a device that provides voice / data connectivity to a user, such as a handheld device or in-vehicle device with wireless connectivity.Currently, some examples of terminals include mobile phones, tablet computers, computers with wireless transceiver capabilities (e.g., notebook computers or palmtop computers), mobile internet devices (MIDs), virtual reality (VR) devices, augmented reality (AR) devices, wireless terminals for industrial control, wireless terminals for self-driving, wireless terminals for remote medical care, wireless terminals for smart grids, wireless terminals for transportation safety, wireless terminals for smart cities, wireless terminals for smart homes, mobile phones, cordless phones, Session Initiation Protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), handheld devices or computing devices with wireless communication capabilities, other processing devices connected to wireless modems, in-vehicle devices, wearable devices, terminal devices for 4G / 5G networks, or future evolved public land mobile networks (PLAs). It may also be a terminal device of the network (PLMN).
[0093] In addition, an UE can also be an UE within an Internet of Things (IoT) system. IoT is an important part of the future development of information technology. The main technological characteristic of IoT is that it uses communication technology to connect things to a network, realizing an intelligent network for interconnection between people and machines and between things. IoT technology can achieve large-scale connectivity, deep coverage, and low power consumption at terminals by using narrowband (NB) technology, for example.
[0094] In addition, the UE may further include intelligent printers, train detectors, etc., and the main functions of the UE include collecting data (which is a function of some terminal devices), receiving control information and downlink data from network devices, transmitting electromagnetic waves, and transmitting uplink data to network devices.
[0095] Optionally, the UE may function as a base station. For example, user equipment may function as a scheduling entity providing sidelink signals between user equipment in vehicle-to-everything (V2X), device-to-device (D2D), etc. For example, a cell phone and a car communicate with each other using sidelink signals. A cell phone communicates with a smart home device without relaying the communication signal through a base station.
[0096] In the network architecture provided in the embodiments of this application, different UEs can make IMS calls over an IMS network. For example, UE1 and UE2 in Figure 1 can make IMS calls over an IMS network. UE2 may be called the peer device that makes IMS calls with UE1. Similarly, UE1 may be called the peer device that makes IMS calls with UE2. It is assumed that UE1 is the device that initiates the call. In the case of UE1, the IMS network that serves UE1 may be called the Local IMS network, and the IMS network that serves UE2 may be called the Remote IMS network. It can be understood that the network element architecture in the Remote IMS network is similar to the network element architecture in the Local IMS network. For brevity, the network element architecture in the Remote IMS network is not shown in the figure.
[0097] 2. Call Session Control Function (CSCF) Network Element: The CSCF is a functional entity within IMS and is the core of the entire IMS. The CSCF is primarily responsible for handling signaling control in the multimedia call session process. The CSCF manages user authentication and quality of service (QoS) on the IMS bearer plane, and works with other network elements to perform controls such as session initiation protocol (SIP) sessions, service negotiation, and resource allocation. For simplicity of explanation, the CSCF network element in this application is referred to as "CSCF".
[0098] The CSCF may communicate with terminal devices, and the CSCF may communicate with gateway devices. For example, the CSCF may select a gateway device to communicate with terminal devices. In addition, the CSCF may assign routing information, such as IP addresses or ports, to terminal devices and gateway devices.
[0099] As an example, rather than being an exhaustive list, CSCFs can be classified based on their function into proxy CSCFs (P-CSCFs), interrogating CSCFs (I-CSCFs), serving CSCFs (S-CSCFs), and so on.
[0100] The P-CSCF is the entry node for users to access the IMS network and is primarily responsible for forwarding SIP signaling between IMS users and their home networks. The I-CSCF is the unified entry point to the IMS user's home network and is responsible for assigning or querying S-CSCFs that serve the user. The S-CSCF is responsible for IMS user registration, authentication, sessions, routing, and service triggering.
[0101] It can be understood that P-CSCF, S-CSCF, and I-CSCF may be placed independently in different entities or integrated into the same entity. This is not limited to the present application.
[0102] 3. IMS Access Media Gateway (AGW): An IMS AGW may provide the functions of an IMS network access gateway and a media gateway.
[0103] It may be understood that CSCF and IMS AGW are sometimes collectively referred to as the IMS core. The method of signaling exchange between network elements within the IMS core is not limited in this application.
[0104] 4. Data Channel Server (DCS): The DCS can be divided into two logical functional entities: a data channel signaling function (DCSF) network element and a media function (MF) network element. The MF network element is configured to provide data channel media resource management functionality, while the DCSF network element is configured to provide data channel signaling control functionality.
[0105] In actual network configurations, DCSF network elements and MF network elements may be integrated (in this case referred to as DCS) or separated. This is not limited to the present application.
[0106] 5. Data Channel Application Repository (DCAR): The DCAR is a repository used to store DC Apps.
[0107] After DC App development is complete, the developer uploads the DC App to the operator's DCS, which stores the DC App in the DCAR. If necessary, the DCS downloads the DC App from the DCAR to a local machine for subsequent processing.
[0108] 6. Home Subscriber Server (HSS): The HSS functions as a database for storing user information in the IMS, and users store user data there. User data may include, but is not limited to, information about data channel services subscribed to and used by the user and operator.
[0109] 7. IMS Application Server (AS): The IMS AS is the top-tier application layer device of the IMS system, providing basic and additional services, such as multimedia conferencing, convergent communications, short message service gateways, and standard attendant consoles. The IMS network is an IP bearer-based open system that provides various multimedia services to users. The IMS AS interacts with the CSCF to trigger and execute various network services. In addition, terminal devices are communicatively connected to the IMS AS. The IMS AS can establish data channels for terminal devices.
[0110] 8. Data Channel Application Server (DC AS): The DC AS is configured to provide data channel service logic.
[0111] 9. Network Exposure Function (NEF) Network Element: The NEF network element is configured to securely expose various services of the 5GC network to third parties.
[0112] It should be understood that the aforementioned network architecture applicable to the embodiments of this application is merely an example, and that network architectures applicable to the embodiments of this application are not limited thereto. Any network architecture capable of performing the functions of the aforementioned network elements is applicable to the embodiments of this application. Specifically, the network architectures and service scenarios described in the embodiments of this application are intended to more clearly illustrate the technical solutions in the embodiments of this application and do not constitute limitations on the technical solutions provided in the embodiments of this application. Those skilled in the art will know that as network architectures evolve and new service scenarios emerge, the technical solutions provided in the embodiments of this application may also be applicable to similar technical problems.
[0113] The network elements or devices listed in the aforementioned network architectures are merely illustrative examples, and it can be further understood that network architectures applicable to this application may further include other network elements or devices. This is not limited to the present application.
[0114] It can be further understood that the names of the aforementioned network elements or devices are defined simply to facilitate the distinction between different functions and should not constitute any limitation to this application. This application does not preclude the possibility of using other names in 4G networks, 5G networks, and other future networks. For example, in a 6G network, some or all of the aforementioned network elements may still use the 4G / 5G terminology, or other names may be used.
[0115] In embodiments of this application, a communication device (e.g., the aforementioned terminal device, CSCF device, or AS device) includes a hardware layer, an operating system layer running on top of the hardware layer, and an application layer running on top of the operating system layer. The hardware layer includes hardware such as a central processing unit (CPU), a memory management unit (MMU), and memory (also referred to as main memory). The operating system may be one or more computer operating systems that implement service processing using processes, such as a Linux® operating system, a Unix® operating system, an Android® operating system, an iOS® operating system, or a Windows® operating system. The application layer includes applications such as a browser, an address book, word processing software, and instant messaging software. In addition, the specific structure of the execution body of the method provided in embodiments of this application is not particularly limited in embodiments of this application, as long as a program recording the code of the method provided in embodiments of this application can operate to perform communication according to the method provided in embodiments of this application. For example, the execution body of the method provided in the embodiments of this application may be a terminal device or a network device, or a functional module that can call and execute a program on a terminal device or a network device.
[0116] In addition, embodiments or features of the embodiments of this application may be implemented as methods, apparatus, or products using standard programming and / or engineering techniques. As used in this application, the term “product” includes computer programs that can be accessed from any computer-readable component, carrier, or medium. For example, computer-readable media may include, but are not limited to, magnetic storage components (e.g., hard disks, floppy disks, or magnetic tapes), optical discs (e.g., compact discs (CDs), or digital versatile discs (DVDs)), smart cards, and flash memory components (e.g., erasable programmable read-only memory (EPROMs), cards, sticks, or key drives). In addition, the various storage media described herein may represent one or more devices and / or other machine-readable media configured to store information. The term “machine-readable media” may include, but are not limited to, wireless channels, as well as various other media that can store, contain, and / or transmit instructions and / or data.
[0117] To facilitate understanding of the technical solutions in the embodiments of this application, some terms or concepts that may be used in the embodiments of this application will be explained first before the solutions in the embodiments of this application are described.
[0118] 1. IMS Session In embodiments of this application, an IMS session is a service in which a communication device continuously participates in a voice or video call with one or more other communication devices via a network element within the IMS, as either a calling ID or a receiving ID. An IMS session may also be referred to as an IMS call or IMS calling.
[0119] An IMS session may encompass the entire process from the start of dialing to the end of a call, or it may encompass a part of the process from the start of dialing to the end of a call, for example, the process from when the parties participating in the IMS session enter a call state until the end of the call.
[0120] IMS sessions may be in a one-to-one format or a one-to-many format (e.g., a conference). In the embodiments of this application, the one-to-one format is used as an example, but all relevant solutions may be used in a one-to-many format.
[0121] 2. Voice calls and video calls In the embodiments of this application, an audio call refers to a call in which audio content is transmitted in real time between participating user devices of an IMS session in order to conduct an audio conversation. In the embodiments of this application, a video call refers to a call in which audio content and / or video content is transmitted in real time between participating user devices of an IMS session in order to conduct a video conversation. Audio calls and video calls may be collectively referred to as audio / video calls.
[0122] 3. Additional communication information The additional communication information described in the embodiments of this application is used to perform communication other than voice or video calls between participating devices in an IMS session, or the additional communication information is used to perform communication between participating devices in an IMS call service other than audio / video dialogue content.
[0123] For example, additional communication information may include at least one of the following: content shots taken by the user's device camera, information generated by a thumb up, information generated by sending a red packet, desktop shared content, marks drawn by the user on the screen, text messages entered by the user, image information entered by the user, geographical location information, and video content in a video file. The information may be generated or consumed by any device on the calling or receiving terminal device, or by a device connected to the calling or receiving terminal device.
[0124] In embodiments of this application, additional communication information may be transmitted (sent or received) by a data channel application on a participant terminal device of an IMS session via a data channel, and corresponding processing (presentation, control, etc.) is performed. The additional communication information in embodiments of this application can be understood as application data generated or consumed by the data channel application.
[0125] 4. Data Channels The data channel in the embodiments of this application is also called an IMS data channel (IMS DC), or data channel in IMS.
[0126] For example, a DC can provide users with a wealth of real-time interaction services in addition to audio and video calls. For instance, terminal devices within the same IMS session service (e.g., UE1 and UE2 in Figure 2) determine, via the IMS SIP / SDP media negotiation procedure, the IP addresses, ports, and transmission protocols used by the two terminal devices for data transmission, key information required by the transport layer protocol, and descriptive information corresponding to the data channels, in order to establish one or more data channels (e.g., the data channels shown in Figure 2) for parallel transmission with audio and video channels in the IMS session.
[0127] The data channel may be used for data transmission based on a stream control transmission protocol (SCTP) or for data transmission based on another transport layer protocol, but is not limited to this application. Figure 3 is a diagram of a data channel protocol stack based on SCTP / datagram transport layer security (DTLS) / user datagram protocol (UDP) / IP. UE1 and UE2 may download various applications (i.e., DC applications) from the network-side DCSF via the data channel and run these applications before, during, or after an audio / video call. By transmitting the application data of these various applications via the data channel, UE1 and UE2 can perform communications other than voice or video calls, such as screen sharing, simultaneous translation, location sharing, superimposition of AR special effects, and even synchronous immersive interactions such as auditory, visual, and haptic, in order to enhance the user experience.
[0128] Data channels may be classified into two types based on their different purposes: bootstrap data channels (BDCs) and application data channels (ADCs).
[0129] BDC is used by terminal devices to retrieve DC Apps from DCSF.
[0130] Terminal devices that support data channel capabilities may establish a BDC using DCSF in the originating network and / or DCSF in the incoming network. The specific method depends on whether the network supports data channel capabilities and the service subscription status of both communication terminal devices in the network.
[0131] In addition, data may be transmitted via BDC using HTTP (hypertext transfer protocol), for example, and the BDC's stream ID value may be less than 1000.
[0132] The ADC is used to transmit conversational / application data generated by the DC App running on both communication partners. In a P2P scenario, an ADC is established between both communication terminal devices. In this case, the ADC is used to transmit conversational / application data generated by the DC App running on both communication terminal devices.
[0133] In addition, data transmission may be performed via the ADC using any protocol. For example, the stream ID value of the ADC may be 1000 or greater.
[0134] 5. Data Channel Applications In embodiments of this application, the data channel application may also be called an IMS DC application (IMS DC App). An IMS DC application may be used to transmit additional communication information over a data channel between multiple terminal devices within the same IMS call service. In one example, the data channel application is network (Web) content including hypertext markup language (HTML), JavaScript scripts, pictures, and cascading style sheets (CSS) that can describe a graphical user interface (UI) and implement interactive service logic.
[0135] Data channel applications may typically be downloaded from the network side by a call application on a terminal device, operate during an IMS call, and do not need to be installed or uninstalled. It can be understood that data channel applications may exist in the form of a web page, or in the form of an applet, quick app, light app, etc. This is not limited to the present application.
[0136] For example, the data channel application in the embodiments of this application may be a DC App within a 4G / 5G network. The DC App can transfer various types of data, such as text, images, location, and files, before and after an IMS call is established, in order to enable communication between communication partners other than voice or video calls. This can significantly improve the experience for both communication partners.
[0137] Terminal devices may obtain the DC App from the DCSF via the BDC in an HTTP procedure, and may update the DC App automatically or interactively at any time, and perform non-voice or video call communication with peer terminal devices via the DC App. For example, suppose a first terminal device and a second terminal device are on the same IMS call service. Assuming that the first terminal device intends to share its mobile phone screen with the second terminal device during the call process with the second terminal device and instruct B to perform mobile phone configuration, the first and second terminal devices may each obtain the DC App used for screen sharing first in order to run the DC App separately for non-voice or video call communication with peer UE.
[0138] 6. Framework Layer The framework layer in embodiments of this application is used to provide communication services for the IMS DC App, including but not limited to data channel media negotiation services. Therefore, the framework layer may also be referred to as the communication service layer of the IMS DC App, the communication service platform, the operating system layer, the data channel application execution environment, the data channel application execution container, the data channel application user agent, and so on. For example, the framework layer may be located on a communication device (e.g., a mobile phone) on which the IMS DC App runs, or it may be located outside the communication device on which the IMS DC App runs. This is not limited to embodiments of this application. For the sake of clarity, embodiments of this application use an example where the framework layer is located on a communication device on which the IMS DC App runs.
[0139] For example, please refer to the related explanation in Figure 11 for further information on the concept of the framework layer.
[0140] 7. Media Description Information and Media Negotiation In embodiments of this application, media description information is information about media resources for an IMS call, such as the IP address of a DC, port information, TLS ID, certificate, and stream identifier (stream ID). Therefore, media description information in embodiments of this application may also be referred to as media information or media resource information.
[0141] Both UEs executing an IMS call (e.g., UE1 and UE2 in Figure 2) may obtain media description information to establish a data channel between UE1 and UE2 by media description information negotiation. Media description information negotiation as used herein means that UE1 and UE2 negotiate the media description information that they will use to execute the IMS call, i.e., UE1 and UE2 need to know the media description information that they will use to send and receive media.
[0142] Both UEs executing an IMS call exchange SDP information for media negotiation using an Offer / Answer model. Figure 4 shows the Offer / Answer model. The model includes two roles: the Offerer and the Answerer. The offerer is the party that wishes to create or modify a session. The SDP offer information sent by the offerer includes the media stream and encoding scheme set desired by the offerer, and the IP address and port number used by the offerer to send and receive the media stream. The answerer is the receiver that responds to the offerer. The answerer generates SDP answer information in response to the SDP offer information. The SDP answer information indicates whether the answerer accepts the provided media stream, the encoding scheme used, and the IP address and port number used by the answerer to send and receive the media stream in the SDP offer.
[0143] The basic procedure for performing IMS call media negotiation by the calling UE1 and the receiving UE2 using media description information is as follows:
[0144] 1. The calling UE1 may include SDP offer information in its SIP INVITE / UPDATE / re-INVITE messages, which include the media stream and encoding scheme set that the calling UE1 is trying to establish, and route the SDP offer information to the receiving UE2 via the IMS network. Specifically, once an IMS session is established, the calling UE1 sends the original SDP via an INVITE message. If the SDP needs to be updated during IMS session establishment, the calling UE1 performs media negotiation again via a SIP UPDATE message. If the SDP needs to be updated after the IMS session has been successfully established, the calling UE1 performs media negotiation again via a SIP re-INVITE message.
[0145] 2. The receiving UE2 may send a 183 / 200 OK response message, which may contain SDP answer information including media streams and encoding schemes supported by the receiving UE2, reject some media streams in the SDP offer information, and route the 183 / 200 OK response message to the calling UE1 via the IMS network.
[0146] The protocol stack for a data channel may be SCTP, and the connection established between two terminal devices is called an SCTP association / SCTP connection. An SCTP association may be described as a single data channel media description in the SDP information. An SCTP association contains multiple one-way streams. The streams are independent of each other and are marked by stream IDs. Data can be transmitted independently on each stream without being affected by other streams. A data channel is essentially two inverse streams on an SCTP association. The two streams use the same stream ID. The media resource for a data channel may be described as an a=dcmap line in the data channel media description information within the SDP information. All lines from one "m=" line (including the "m=" line) to the next "m=" line (excluding the next "m=" line) or the last line (including the last line) in the SDP information are called an m-segment ("m=" lines). An m-segment starting with the "m=application" line is called a DC m-segment.
[0147] Figure 5 is a model diagram of media description information for audio, video, and data channels in a single IMS session. For ease of explanation, media description information is abbreviated as "media description" in Figure 5, and all applications in Figure 5 are IMS DC applications. An IMS session can be described as an SDP. Bold text in the figure indicates the representation of data channels in the SDP. As shown in Figure 5, an IMS session has three IMS DC applications. After the terminal device downloads application 1 via BDC, when application 1 creates a data channel, the IMS session's SDP already contains the media descriptions for audio, video, and BDC. In this case, the media description for the ADC created by application 1 needs to be added to the SDP, and media renegotiation is performed. The terminal device continues downloading application 2. When application 2 creates a data channel, the IMS session's SDP already contains the media descriptions for audio, video, and BDC, as well as the media description for the ADC created by application 1. The media description for the ADC created by application 2 needs to be added to the SDP, and media renegotiation is performed. The terminal device continues downloading application 3. When application 3 creates a data channel, the IMS session's SDP already contains media descriptions for audio, video, and BDC, media descriptions for the ADC created by application 1, and media descriptions for the ADC created by application 2. The media description for the ADC created by application 3 needs to be added to the SDP, and media renegotiation is performed.
[0148] The following describes the IMS DC media negotiation procedure using an example. First, in the process of establishing a BDC, the BDC's media description information can be negotiated via INVITE, UPDATE, and re-INVITE messages. When the calling UE1 initiates a call to the receiving UE2, SDP offer information is transmitted in an INVITE message during the call establishment process, and the SDP offer information includes audio, video, and BDC media description information. Alternatively, after an audio / video session is established, SDP offer information including the BDC's media description information is transmitted in a re-INVITE message. The number of the aforementioned SDP offer information including the BDC's media description information is SDP#1, and we assume that the SDP offer includes audio media description information (numbered m#1), video media description information (numbered m#2), and BDC media description information (numbered m#3). The BDC media description information includes two DCs, which are represented by attribute lines a=dcmap:0 and a=dcmap:100, respectively.
[0149] The ADC media negotiation process can be carried out via a re-INVITE message. After the calling UE1 and calling UE2 establish an audio / video session and the two UEs establish an IMS network and BDC, if UE1 needs to send a file to UE2, UE1 selects the "Send File" application on the call screen of UE1. In this case, UE1 obtains the "Send File" application via the established BDC. To use the "Send File" application to send a file to UE2, the "Send File" application on UE1 triggers the ADC establishment procedure between UE1 and UE2. In this case, the re-INVITE message sent by UE1 to UE2 conveys the SDP offer information. The SDP offer information number is SDP#2, and the SDP offer information is used to trigger the ADC establishment procedure between UE1 and UE2. The SDP offer information includes audio media description information (number m#1), video media description information (numbered m#2), BDC media description information (numbered m#3), and ADC media description information (numbered m#4). m#1, m#2, and m#3 are already included in SDP#1, and new ADC media description information is specified by the "Send Files" application and added to SDP#1, and the correspondence between the ADC media description information and the "Send Files" application is added, forming SDP#2.
[0150] The correspondence between the ADC media description information (numbered m#4, etc.) and the "Send File" application may be represented in the following two ways:
[0151] (1) In order to describe the correspondence between the ADC media description information and the "Send File" application, the application identifier (appid) of the "Send File" application is marked in the label parameter of the a=dcmap attribute row.
[0152] (2) To describe the correspondence between the ADC media description information and the "Send File" application, attribute lines are added to the m=application segment corresponding to the ADC media description information. For example, the a=3gpp-req-app attribute line may be combined with the m=application segment or the a=dcmap attribute line.
[0153] In one case, assuming that UE1 needs to send a file not only to peer UE2 but also to the IMS network side, a new ADC is established between UE1 and the IMS network side. In this case, UE1 needs to initiate a new media negotiation, and the "Send File" application needs to generate a new ADC media description (m#5) and add the new ADC media description (m#5) to SDP#2.
[0154] In another case, UE1 needs to send a specific file to UE2, and there are special quality of service (QoS) requirements, such as latency and packet loss requirements. The original ADC media description information (numbered m#4) cannot meet the requirements, so a new m-segment needs to be created for this special scenario. The special QoS requirement information (numbered m#6) needs to be represented using the a=3gpp-qos-hint attribute line, and the special QoS requirement information is combined with SDP#2.
[0155] If both the calling UE1 and the receiving UE2 need to start the "Screen Sharing" application after using "Send File," the "Screen Sharing" application triggers the ADC establishment procedure between UE1 and UE2. When the ADC required by the "Screen Sharing" application has special QoS requirements, a separate m-segment must be used to represent the requirements. Calling UE1 sends a re-INVITE message that transmits SDP offer information containing the new ADC media description, with the SDP offer information number being SDP#3, and the ADC media description information of the "Screen Sharing" application (numbered m#7) must be added to the SDP offer information. If the "Screen Sharing" application does not have special QoS requirements, the existing ADC media description information (numbered m#4) can be reused, and a new a=dcmap attribute line is added to m#4. If existing ADC media description information (numbered m#4) is reused, the correspondence between the ADC media description information and the application is described using the label parameter of the a=dcmap attribute line, or the a=3gpp-req-app attribute line is added to describe the correspondence between the ADC media description information and the application.
[0156] In conclusion, when an application triggers the ADC establishment procedure, new DC media description information needs to be combined with the existing SDP. For example, the ADC media description information is combined with the existing IMS SDP, or the a=dcmap attribute row corresponding to the application is added to the m segment of the IMS SDP.
[0157] To support the data channel, terminal devices need to be upgraded and rebuilt. Figure 6 is an example of an architecture diagram of a terminal device whose Android operating system supports IMS DC. The dashed lines indicate enhanced features. The chip modem layer needs to be upgraded for enhanced SIP / SDP protocols to support IMS data channel establishment and media negotiation. The application program framework layer needs to connect and manage the data channel via embedded native system services and expose an interface for the application layer. This can be specifically implemented by enhancing the IMS service layer. Native call applications can be used to establish / delete data channels between terminal devices and terminal devices / networks and to send and receive data transmitted over the channel using the data channel capabilities provided through the exposed interface. This is similar to the case of the IOS operating system. Details are not described in this application.
[0158] In 3GPP TS 26.114, the IMS multimedia telephony service (MTSI client) natively provided by the terminal device is called an MTSI client, and an MTSI client that supports a data channel (DC) is called a DCMTSI client (data channel multimedia telephony service for IMS). The native IMS portion of the terminal device is sometimes called an IMS component, and the IMS component / framework layer includes the IMS service 601, DC 602, and modem 603 in Figure 6.
[0159] Due to the data channel capabilities provided by the IMS components, the IMS data channel needs to expose a scheduling interface for JavaScript applications via the web engine so that DC applications can trigger IMS DC creation procedures, send data through the IMS DC, process the data channel's service data in real time via the web engine, and display the data on the UI in real time.
[0160] GSMA NG.134 recommends using WebRTC API 1.0 to support IMS DC. As shown in Figure 6, WebRTC is integrated into the framework layer of the terminal device. WebRTC is deployed in the browser to provide the WebRTC 1.0 standard API for DC applications.
[0161] The above describes exemplary system architectures to which embodiments of this application can be applied, and the basic concepts of this application, with reference to the attached drawings. Below, a brief description of the technical solutions related to embodiments of this application is provided.
[0162] 1. Web Real-Time Communication (WebRTC) architecture, protocol stack, and WebRTC signaling model
[0163] 1. WebRTC Architecture WebRTC is a real-time communication technology that enables network applications or sites to establish peer-to-peer (P2P) connections between browsers without using an intermediary medium to transmit video streams and / or audio streams or other data.
[0164] Figure 7 shows the WebRTC architecture. A Web App is a web application developed by an application developer. Application developers can develop real-time audio / video communication applications based on a browser integrated with the WebRTC API. A Web application is software that runs on a web browser and uses a standard browser as a client. A Web application may also be understood as a hypertext markup language (HTML) web page and is typically written in a hybrid format of HTML5, cascading style sheets (CSS), and the interpreting language JavaScript.
[0165] WebRTC includes several interrelated APIs and protocols to achieve this objective. The Web API layer contains APIs exposed via WebRTC for application layer developers. The APIs are primarily JavaScript APIs and are provided for web applications. Application developers do not need to worry about complex underlying technologies; they only need to understand the general procedures and principles of WebRTC and call the WebRTC API to easily develop web applications similar to network video chat software.
[0166] The WebRTC C++ API layer contains APIs used by browsers to support the WebRTC specification. Its main function is to expose core WebRTC functions, such as device functionality and audio / video stream data collection, allowing browser developers to integrate these functions into their own applications. Peer connection is a core module of the WebRTC C++ API layer and performs functions such as P2P hole punching, establishing and selecting communication links, transmitting stream data, transmitting non-audio / video data, and reporting and stating transmission quality.
[0167] The session management layer provides session functionality management, including session creation, session management, and context environment management. This layer is related to various protocols, such as the SDP protocol for signaling servers, and is primarily used for managing the connection status of signaling exchange and RTC peer connections.
[0168] The engine layer defines the audio engine, video engine, and transmission module, which can be used to process audio and video and perform file transmission.
[0169] The driver layer includes an audio capture rendering module, a video capture module, and a network input / output (I / O) module.
[0170] 2. WebRTC protocol stack Data channels within the WebRTC protocol stack can be implemented using the UDP / DTLS / SCTP protocol stack. In the process of establishing a session, the calling and receiving terminal devices must perform media negotiation so that both parties can agree on the media stream and encoding scheme. While WebRTC does not specify a particular signaling protocol, the SDP protocol is used for media negotiation. The SDP protocol is used to forward the necessary session messages to session participants and defines a unified format for session descriptions. SDP information consists of two parts: one part is general session information, including information such as the session name, contact address, and time, and is called the session-level description; the other part is session media information, including information such as the media type, transport protocol, encoding format, and transport address, and is called the media-level description. Figure 8 shows an example of SDP information, where the third media segment may be called the m-segment or DC m-segment. In the embodiments of this application, the content after " / / " is a description of the meaning of each parameter and is not the content of the SDP information. "a=..." represents one or more a attribute rows within the m segment, some of which are SCTP association level attributes. The "a=dcmap" row represents a data channel level attribute.
[0171] 3. WebRTC Signaling Model Furthermore, WebRTC exchanges SDP information using the offer / answer model shown in Figure 4.
[0172] The JavaScript session establishment protocol defines how a WebRTC JavaScript application controls the multimedia session signaling plane via an interface specified in the Web API layer. The protocol assumes that the JavaScript application runs in an execution environment that includes the WebRTC API, which is referred to as the "JSEP implementation." The design focus of the WebRTC signaling model is that WebRTC (corresponding to the session management layer in Figure 7, and the JSEP implementation in Figure 9) primarily focuses on the media plane, while signaling exchange is left to be implemented in the application as much as possible.
[0173] The JSEP implementation maintains a signaling status to indicate the media negotiation status during media negotiation. The JSEP implementation provides the necessary interfaces for the web application. The web application drives the signaling status machine by calling the API at the correct time. Based on the information provided by the web application, the JSEP implementation primarily creates an SDP containing all the relevant media configuration parameters necessary to establish the media type, format, and media path, and processes the negotiated local and remote session descriptions.
[0174] Different web applications may use different signaling protocols on the signaling plane / signaling layer, and can exchange media description information with remote web applications based on a standardized signaling protocol preferred by the web application, such as the session initiation protocol (SIP), or even a signaling protocol defined by the web application.
[0175] The aforementioned WebRTC protocol corresponds to the JSEP implementation. This is concretely embodied as follows: the JSEP implementation is the WebRTC implementation introduced into the browser, providing a JavaScript API for web applications (corresponding to the Web API in Figure 7). A web application is an application that runs on a browser and calls the JavaScript API to perform functions such as network video chat.
[0176] II. WebRTC Call Procedure For example, GSMA NG.134 recommends using WebRTC API 1.0 to support IMS DC. When a user needs to run a WebRTC application, both the calling and receiving terminal devices must first download the WebRTC application from a separate web server. After the WebRTC application is downloaded, both the calling and receiving terminal devices' browsers run the same application. Once the calling terminal initiates the call, the end-to-end call procedure begins. Figure 10 shows the WebRTC call procedure. The specific steps are as follows:
[0177] S1001: When the calling UE1 starts a WebRTC App and needs to perform media Offer / Answer negotiation, the WebRTC App calls the RTCPeerConnection interface included in the WebAPI, creates a new RTCPeerConnection object by passing configuration parameters, and returns the new RTCPeerConnection object to the WebRTC App. The new RTCPeerConnection object represents the connection between the calling UE1 and the calling UE2, and the configuration parameters are optional. If configuration parameters are passed, configuration is performed based on the specified parameters. If no configuration parameters are passed, a basic configuration is performed.
[0178] An RTCPeerConnection corresponds to the session level in SDP. A single RTCPeerConnection can have only one SCTP association corresponding to one m-segment within SDP.
[0179] S1002: The calling WebRTC App creates an RTCDataChannel object on top of an existing RTCPeerConnection object by calling the createDataChannel API included in the WebAPI layer, and the RTCDataChannel object represents the establishment of a bidirectional data channel. Optionally, the WebRTC App transmits the data channel name label and data channel configuration parameters. The data channel configuration parameters are: (1) ordered: Indicates whether information about the data channel is transmitted in order, specifically whether the arrival sequence must match the transmission sequence. By default, the arrival sequence matches the transmission sequence. (2) maxPacketLifeTime: Represents the maximum period of failure for message retransmission in an unreliable transmission mode. This can be understood as meaning that after that time, even if the message fails to be retransmitted, the message will no longer be transmitted; (3) maxRetransmits: Represents the maximum number of retransmissions for a message that failed to be retransmitted in an unreliable transmission mode, and is mutually exclusive with maxPacketeLifeTime; (4) protocol: Represents the subprotocol used in the data channel; (5) negotiated: Indicates whether the data channel is negotiated in-band or out-of-band; (6) id: Represents the stream ID of the data channel.
[0180] All data channels on the same RTCPeerConnection share the same SCTP association, the same DC media description information, and the same DC m-segment. Each time a data channel is created, a new bidirectional data channel or SCTP stream corresponding to the a=dcmap attribute row of the m-segment is created in the existing SCTP association.
[0181] S1003: The calling party's WebRTC App triggers the JSEP implementation to generate SDP offer information by calling the createOffer API included in the WebAPI layer, adds the SDP offer information to the current RTCPeerConnection, and returns the RTCPeerConnection to the WebRTC App. The SDP offer information includes media description information that needs to be negotiated with the calling party. The WebRTC App may transmit some optional additional information.
[0182] When the createOffer API is called for the first time, the generated SDP information is called the initial SDP offer information. If the createOffer API is called after a session has been established, the JSEP implementation generates SDP offer information after the current session has been modified, based on any changes to the session, and sends the SDP offer information to the WebRTC App.
[0183] S1004: The calling party's WebRTC App sends the generated SDP offer information to the JSEP implementation by calling the setLocalDescription API included in the WebAPI layer, triggering the JSEP implementation to parse the SDP offer information and create local resources for receiving and decoding media information. In the case of a DC, DC configuration transmission parameters are triggered to trigger the creation of SCTP Streams, the configuration of data sources, etc.
[0184] S1005: The calling party's WebRTC app sends SDP offer information to the receiving party's WebRTC app via the signaling server.
[0185] S1006: After the calling party's WebRTC App receives the SDP offer information, the calling party's WebRTC App creates a local RTCPeerConnection object. The WebRTC App creates the local RTCPeerConnection object by calling the RTCPeerConnection interface included in the WebAPI and passing configuration parameters, and returns this local RTCPeerConnection object to the WebRTC App.
[0186] S1007: The calling party's WebRTC App creates an RTCDataChannel object on the created local RTCPeerConnection object. The transmitted name label and transmitted configuration parameters of the data channel are the negotiated answer information for the data channel to the received SDP offer information.
[0187] S1008: The calling party's WebRTC App triggers the calling party's JSEP implementation by calling the setRemoteDescription API included in the WebAPI layer, which parses the SDP offer information and configures local resources for transmitting and encoding media information.
[0188] S1009: To complete the Offer / Answer exchange, the calling party's WebRTC application generates appropriate SDP Answer information by calling the createAnswer API. The SDP Answer information includes any media connected to the session or codecs supported by the browser.
[0189] S1010: The calling party's WebRTC App calls the setLocalDescription API, which is included in the WebAPI layer, to set local SDP information and configure local resources for receiving and decoding media information.
[0190] S1011: The calling party's WebRTC app sends SDP Answer information to the calling party's WebRTC app via the signaling server.
[0191] S1012: After receiving the SDP Answer information, the calling party's WebRTC App sends the SDP Answer to the JSEP implementation by calling the setRemoteDescription API, triggering the JSEP implementation to parse the SDP Answer and configure local resources for transmitting and encoding media information. Initial setup is then complete.
[0192] S1013: The WebRTC user agents / JSEP implementations of the calling and receiving parties create SCTP / DTLS associations and corresponding streams.
[0193] S1014: After the data channel connection is created, the JSEP implementation notifies the calling and receiving WebRTC Apps by triggering the onDataChannel() event. This indicates that the data channel connection has been created.
[0194] S1015 and S1016: The calling and receiving WebRTC Apps send media information via the send() interface and receive media information by triggering the onmessage() event.
[0195] In the WebRTC architecture, the JSEP implementation cannot interact with IMS components, and the DC m-segments within the WebRTC SDP created by the JSEP implementation cannot be combined with the existing IMS SDP. Therefore, it is not possible to trigger media negotiation of data channels between different communication devices. Specifically, there are two reasons for this:
[0196] 1. In the WebRTC design mechanism, signaling exchange is performed by the application layer, and the JSEP implementation cannot interact with IMS components or send WebRTC SDPs to IMS components. As a result, DC m segments within the WebRTC SDP created by the JSEP implementation cannot be combined with existing SDPs in IMS.
[0197] 2. The WebRTC SDP generated by the JSEP implementation is based on the WebRTC protocol. In a WebRTC session, only one DC m-segment can be created, and all DCs share this DC m-segment. The WebRTC SDP does not conform to the IMS standard protocol, and the specific reasons are as follows:
[0198] (1) When a WebRTC App establishes a DC with different terminal devices, for example, when separately establishing data channels between a peer terminal device and the network, each connection / SCTP association corresponds to an independent session, and each connection / SCTP association has a corresponding independent session context. For each connection, the WebRTC App uses the WebRTC API to create an RTCPeerConnection object (corresponding to the session and SCTP association) and one or more DataChannel objects. For each connection / SCTP association, each WebRTC App has an independent WebRTC SDP, and it can be understood that the WebRTC SDP contains the DC m-segment. The WebRTC protocol does not support a single session context / WebRTC SDP containing the m-segment of DCs established between the same terminal device and different peer terminal devices.
[0199] (2) The WebRTC protocol does not support the 3gpp-qos-hint parameter.
[0200] (3) Each WebRTC App uses an independent session context. Multiple WebRTC Apps are not supported when sharing the same session context / WebRTC SDP.
[0201] Accordingly, embodiments of this application provide a media negotiation method that enables an IMS DC application to trigger a JSEP implementation by calling a WebRTC API to generate descriptive information for the DC's media resources, and to transmit that information to an IMS component to provide a media negotiation service for the data channel for the IMS DC application. In addition, different IMS DC applications can share a single IMS session context, the same terminal device is supported when establishing a DC with multiple peer terminal devices in a single IMS session context, and the IMS DC application is supported when specifying quality of service parameters for the DC.
[0202] Referring to the attached drawings, the media negotiation method and communication apparatus provided in this application will be described in detail below.
[0203] The specific structure of an executable of the method provided in the embodiments of this application is not particularly limited in the following embodiments, as long as a program that records the code of the method provided in the embodiments of this application can be executed to perform communication in accordance with the method provided in the embodiments of this application. For example, an executable of the method provided in the embodiments of this application may be a core network device and a terminal device, or a functional module that can call and execute a program in the core network device or a terminal device.
[0204] To facilitate understanding of the embodiments of this application, the following description is provided.
[0205] Firstly, in this application, “instruct” may be understood as “enable,” and “enable” may include “directly enable” and “indirectly enable.” If one piece of information is described as enabling A, that information may enable A directly or indirectly, but this does not mean that the information will reliably transmit A.
[0206] Information that is enabled by other information is called to-be-enabled information. In a particular implementation process, to-be-enabled information may be enabled in multiple ways, for example, but not limited to, directly, for example, the to-be-enabled information or its index may be directly enabled. Alternatively, to-be-enabled information may be enabled indirectly by enabling other information, and there is a relationship between the other information and the to-be-enabled information. Alternatively, only a portion of the to-be-enabled information may be enabled, and other portions of the to-be-enabled information may be known or agreed upon in advance. For example, certain information may be enabled by a pre-agreed sequence (e.g., specified in a protocol) of all information in order to reduce the activation overhead to some extent. In addition, common parts of all information may be identified and enabled in a unified manner in order to reduce the activation overhead that would arise from enabling the same information separately.
[0207] Secondly, the terms “First,” “Second,” and various numbers (e.g., “#1,” “#2,” etc.) used in this application are intended solely to distinguish subjects for the sake of clarity and do not limit the scope of the embodiments of this application, and are used, for example, to distinguish different messages, but not to describe a particular order or sequence. It should be understood that subjects described in this manner are interchangeable in appropriate circumstances so as to describe solutions other than the embodiments of this application.
[0208] Thirdly, “include,” “have,” and any other variations thereof are intended to include non-exclusive inclusions. For example, a process, method, system, product, or device that includes a list of steps or units is not necessarily limited to the explicitly listed steps or units, and may include other steps or units that are not explicitly listed or that are specific to such process, method, product, or device.
[0209] Fourth, in this application, “preconfiguration” may include “predefinitions,” such as protocol definitions. “Predefinitions” may be implemented in a manner that pre-stores corresponding code, tables, or other relevant information that can be used for instructions in devices (e.g., including network elements). The specific implementations thereof are not limited in this application.
[0210] Fifth, “storage” in the embodiments of this application may mean storage in one or more memories. One or more storage devices may be located separately or may be integrated into an encoder or decoder, processor, or communication device. Alternatively, a portion of one or more memories may be located separately, and a portion of one or more memories may be integrated into a decoder, processor, or communication device. The type of memory may be any form of storage medium; this is not limited to the present application.
[0211] Sixth, the “protocol” in the embodiments of this application may be a standard protocol in the field of communications, and may include, for example, 4G / 5G protocols, new radio (NR) protocols, and related protocols applicable to future communications systems. This is not limited to the present application.
[0212] Seventh, in the method flowchart in the attached drawings of this specification, the dashed boxes represent optional steps.
[0213] The media negotiation method provided in the embodiments of this application will be described in detail below, using the interaction between network elements as an example. Terms and steps in the embodiments of this application may be understood to refer to one another.
[0214] Figure 11 is an example of an architecture diagram of a terminal device supporting an IMS DC according to one embodiment of the present application. The IMS DC application can interact with the WebRTC API or framework layer. The IMS components / framework layer include the IMS service 1101, DC 1102, and modem 1103 in Figure 11.
[0215] Figure 12 is an exemplary flowchart of a media negotiation method 1200 according to one embodiment of the present application. In method 1200, the framework layer includes IMS components, or the framework layer includes IMS components and an IMS DC signaling module. The first and second applications are IMS DC applications, and the media description information for the data channel is called an m-segment.
[0216] S1210: The first application sends first media description information to the framework layer. The first media description information is a description of the media resources of a first data channel provided by the first application, the first data channel being a channel for transmitting application data generated or consumed by the first application between the first communication device and the second communication device, and both the framework layer and the first application operate on the first communication device. In response, the framework layer receives the first media description information from the first application. For example, the first application sends the first media description information to the framework layer by calling the IMS DC signaling API. Optionally, the first communication device is the first terminal device, and the first terminal device is the calling terminal device.
[0217] For example, the first application triggers the JSEP implementation to generate second SDP offer information by calling the createOffer API included in the WebAPI layer. The second SDP offer information includes the first media description information. The first application sends the second SDP offer information to the framework layer. After the framework layer receives the second SDP offer information from the first application, the framework layer obtains the first media description information from the second SDP offer information. For a specific implementation of how the first application running on the first communication device triggers the JSEP implementation to generate the second SDP offer information, please refer to steps S1001 to S1004 in Figure 10.
[0218] S1220: The framework layer transmits first SDP offer information to the second communication device via the IMS network element. The first SDP offer information includes first media description information. Correspondingly, the second communication device receives the first SDP offer information from the framework layer via the IMS network element. Optionally, the second communication device is a second terminal device or server corresponding to the first application, and the second terminal device or server corresponding to the first application is the calling terminal device.
[0219] Optionally, an IMS network element includes a P-CSCF network element. An IMS network element is one or more IMS network elements within an IMS network, and the first IMS network element that interacts with the framework layer within the IMS network is a P-CSCF network element. For example, the framework layer transmits first SDP offer information to a second communication device via one or more IMS network elements within the IMS network, and the second communication device receives first SDP offer information from the framework layer via one or more IMS network elements within the IMS network.
[0220] For example, the first SDP offer information further includes a third media description information and / or a fourth media description information. The third media description information is a description of the media resources of an audio channel, provided by the framework layer, and the audio channel is used to transmit audio data for the call service of the first communication device. The fourth media description information is a description of the media resources of a video channel, provided by the framework layer, for transmitting video data for the call service of the first communication device. It can be understood that the first SDP offer information includes the first media description information, or the first SDP offer information includes the first media description information and the third media description information, or the first SDP offer information includes the first media description information and the fourth media description information, or the first SDP offer information includes the first media description information, the third media description information, and the fourth media description information. In this example, a framework layer operating on the first communication device may combine the media resource description information for the first data channel (first media description information), the media resource description information for the audio channel (third media description information), and / or the media resource description information for the video channel (fourth media description information) with the first SDP offer information and transmit the first SDP offer information to the second communication device.
[0221] An IMS session may support multiple applications or only one IMS DC application. If an IMS session supports only one IMS DC application and a second communication device is downloading the first application, the framework layer does not need to show the second communication device the correspondence between the first application and the first data channel. If an IMS session supports only one IMS DC application and the second communication device has not downloaded the first application, the framework layer must show the second communication device the correspondence between the first application and the first data channel so that the second communication device can download the first application based on the correspondence between the first application and the first data channel. When an IMS session supports multiple IMS DC applications, the framework layer must show the second communication device the correspondence between the first application and the first data channel so that the second communication device can know which application is using the first data channel.
[0222] Optionally, if an IMS session supports only one IMS DC application and the second communication device has not downloaded the first application, or if an IMS session supports multiple IMS DC applications, the first SDP offer information sent by the framework layer indicates the correspondence between the first application and the first data channel. The first SDP offer information indicates the correspondence between the first application and the first data channel in the following two implementation forms:
[0223] In one implementation, the first media description information includes a first attribute row and a second attribute row. The first attribute row includes parameter information for the first data channel, and the parameter information for the first data channel includes the identifier for the first data channel. The second attribute row includes the identifier for the first data channel and the identifier for the first application. The first attribute row is a=dcmap attribute row, and the second attribute row is a=3gpp-req-app attribute row. Figure 13 shows an example of the correspondence between the first application and the first data channel. The identifier for the first application is application1, and the identifier for the first data channel is 1001. In another implementation, the first media description information includes a third attribute row. The third attribute row includes parameter information for the first data channel and the identifier for the first application, and the parameter information for the first data channel includes the identifier for the first data channel. The third attribute row is a=dcmap attribute row. Figure 14 shows another example of the correspondence between the first application and the first data channel. The identifier for the first application is application1, and the identifier for the first data channel is 1001.
[0224] Optionally, the first application sends a first QoS parameter set to the framework layer. The first QoS parameter set includes at least one QoS parameter for a first data channel provided by the first application. In response, the framework layer receives the first QoS parameter set from the first application. In this case, the first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information.
[0225] For example, the first media description information includes a first QoS parameter set. For example, the first media description information includes a fourth attribute line, the fourth attribute line containing at least one QoS parameter in the first QoS parameter set. For example, the fourth attribute line is the attribute line a=3gpp-qos-hint. For example, at least one QoS parameter includes packet loss rate and latency. Figure 15 shows an example of QoS parameters. The latency for the first data channel provided by the first application is 100 milliseconds (ms), and the loss is 0.01%.
[0226] If the first SDP offer information indicates the correspondence between the first application and the first data channel, and the correspondence between the first QoS parameter set and the first media description information, and the first media description information includes a first attribute row and a second attribute row, an example of the QoS parameters and the correspondence between the first application and the first data channel is shown in Figure 16. If the first SDP offer information includes the correspondence between the first application and the first data channel, and the correspondence between the first QoS parameter set and the first media description information, and the first media description information includes a third attribute row, another example of the QoS parameters and the correspondence between the first application and the first data channel is shown in Figure 17.
[0227] For example, the first SDP offer information further includes the seventh media description information. The seventh media description information is a description of the media resources of a second data channel, the second data channel being a channel for transmitting application data generated or consumed by a first application between a first communication device and a second communication device, or between a first communication device and a third communication device, or for transmitting application data generated or consumed by a second application. If the first SDP offer information further indicates a correspondence between a first QoS parameter set and the first media description information, the first media description information and the seventh media description information are contained in the first m-segment and the second m-segment, respectively, within the first SDP offer information. It can be understood that the seventh media description information and the first media description information are contained in different m-segments within the first SDP offer information. Since the first application provides at least one QoS parameter for the first data channel, the first media description information for the first data channel and the seventh media description information for the second data channel cannot share the same m-segment in the first SDP offer information. Based on this example, if the second data channel is for the transmission of application data generated or consumed by the second application between the first and second communication devices, different IMS DC applications can share one IMS session context. If the second data channel is for the transmission of application data generated or consumed by the first or second application between the first and third communication devices, the same communication devices may be supported when establishing data channels with multiple peer communication devices in one IMS session context.
[0228] Optionally, the first application sends first directive information to the framework layer. The first directive information indicates that the first data channel will use an independent bearer. An independent bearer means that the first data channel and another data channel are not in the same SCTP association, and the other data channel is a data channel other than the first data channel. The other data channel may be a data channel other than the first data channel that the first application needs to create, or a data channel that another application needs to create. In response, the framework layer receives further first directive information from the first application. The first directive information indicates that the first data channel will use an independent bearer, and as a result, the bearer of the first application is independently disabled, thereby saving network resources. In addition, the first application does not preempt network resources with another application.
[0229] For example, the first SDP offer information further includes the seventh media description information. The seventh media description information is a description of the media resources of the second data channel, which is a channel for transmitting application data generated or consumed by the first application between the first and second communication devices, or between the first and third communication devices, or for transmitting application data generated or consumed by the second application. When the framework layer receives the first instruction information from the first application, the first media description information and the seventh media description information are included in the first and second m-segments, respectively, within the first SDP offer information. It can be understood that the seventh media description information and the first media description information are included in different m-segments within the first SDP offer information.
[0230] For example, the first SDP offer information further includes the seventh media description information. The seventh media description information is a description of the media resources of the second data channel, which is a channel for transmitting application data generated or consumed by the first application between the first and second communication devices, or between the first and third communication devices, or for transmitting application data generated or consumed by the second application. If the first SDP offer information does not indicate a correspondence between the first QoS parameter set and the first media description information, and the framework layer does not receive the first instruction information from the first application, then the first media description information and the seventh media description information are included in the fifth m-segment within the first SDP offer information. It can be understood that the seventh media description information and the first media description information are included in the same m-segment within the first SDP offer information.
[0231] Optionally, prior to S1220, the framework layer generates first SDP offer information based on first media description information. An example is provided below for explanation with reference to S1221.
[0232] Optionally, in S1221, the framework layer generates first SDP offer information based on at least one of the following from a first application: first media description information, a first QoS parameter set, and first instruction information, or the number of IMS DC applications supported by one IMS session.
[0233] For example, if an IMS session supports only one IMS DC application and a second communication device has not downloaded the first application, the framework layer generates first SDP offer information based on the first media description information. The first SDP offer information includes the first media description information and indicates the correspondence between the first application and the first data channel.
[0234] For example, if an IMS session supports multiple IMS DC applications, the framework layer generates first SDP offer information based on first media description information. The first SDP offer information includes first media description information and indicates the correspondence between first applications and first data channels.
[0235] For example, if the framework layer receives a first QoS parameter set from a first application, and the first QoS parameter set includes at least one QoS parameter for a first data channel provided by the first application, the framework layer generates first SDP offer information. The first SDP offer information includes first media description information, which indicates the correspondence between the first QoS parameter set and the first media description information.
[0236] For example, if an IMS session supports multiple IMS DC applications, and the framework layer receives a first QoS parameter set from a first application, and the first QoS parameter set includes at least one QoS parameter for a first data channel provided by the first application, the framework layer generates first SDP offer information. The first SDP offer information includes first media description information, which indicates the correspondence between the first application and the first data channel, and the correspondence between the first QoS parameter set and the first media description information.
[0237] For example, if the framework layer determines that a seventh media description already exists, and the framework layer receives a first instruction from a first application, and the first instruction indicates that the first data channel will use an independent bearer, the framework layer generates a first SDP offer information. The first SDP offer information includes the seventh media description information and the first media description information, and the first media description information and the seventh media description information are contained in the first m-segment and the second m-segment within the first SDP offer information, respectively.
[0238] For example, if the framework layer determines that a seventh media description information already exists, and the framework layer receives a first QoS parameter set from a first application, and the first QoS parameter set includes at least one QoS parameter for a first data channel provided by the first application, the framework layer generates a first SDP offer information. The first SDP offer information includes the seventh media description information and the first media description information, and the first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information. The first media description information and the seventh media description information are contained in the first m-segment and the second m-segment, respectively, within the first SDP offer information.
[0239] For example, if the framework layer determines that a seventh media description already exists, and the framework layer does not receive a first instruction information from the first application, nor does it receive a first QoS parameter set from the first application, the framework layer may combine the seventh media description with the first media description to generate the first SDP offer information. The first SDP offer information includes the seventh media description and the first media description, and the first and seventh media description are included in the fifth m-segment within the first SDP offer information. Figure 18 shows an example of combining media description information from different data channels. The identifier for the first data channel is 1001, the identifier for the second data channel is 3874, the identifier for the first application is application1, and the identifier for the second application is application2.
[0240] For example, if the framework layer determines that a third media description and / or a fourth media description already exist, the framework layer generates a first SDP offer information. The first SDP offer information includes the first media description, the third media description, and / or the fourth media description.
[0241] S1230: The second communication device transmits the first SDP answer information to the framework layer via the IMS network element. The first SDP answer information includes the second media description information, which is the second communication device's answer to the first media description information. In response, the framework layer receives the first SDP answer information from the second communication device via the IMS network element.
[0242] Optionally, before S1230, the second communication device generates the first SDP answer information. An example is provided below with reference to S1231.
[0243] Optionally, in S1231, the second communication device generates first SDP answer information based on first SDP offer information from the framework layer. The first SDP offer information includes first media description information, and the first SDP answer information includes second media description information.
[0244] Optionally, if the first SDP offer information indicates a correspondence between the first application and the first data channel, the first SDP answer information also indicates a correspondence between the first application and the first data channel. The first SDP answer information indicates a correspondence between the first application and the first data channel in the following two implementation forms:
[0245] In one implementation, the second media description information includes a first attribute row and a second attribute row. The first attribute row includes parameter information for the first data channel, and the parameter information for the first data channel includes the identifier for the first data channel. The second attribute row includes the identifier for the first application and the identifier for the first data channel.
[0246] In another implementation, the second media description information includes a third attribute row. The third attribute row includes parameter information for the first data channel and an identifier for the first application, and the parameter information for the first data channel includes an identifier for the first data channel.
[0247] Optionally, if the first SDP offer information further indicates a correspondence between a first QoS parameter set and the first media description information, the first SDP answer information further indicates a correspondence between a second QoS parameter set and the second media description information. The second QoS parameter set is the second communication device's answer to the first QoS parameter set. For example, the second media description information includes the second QoS parameter set. For example, the second media description information includes a fourth attribute row, the fourth attribute row includes at least one QoS parameter in the second QoS parameter set.
[0248] If, optionally, the first media description information and the seventh media description information are included in the first m-segment and the second m-segment, respectively, within the first SDP offer information, then the second media description information and the eighth media description information are included in the third m-segment and the fourth m-segment, respectively, within the first SDP answer information, and the eighth media description information is an answer to the seventh media description information.
[0249] If, optionally, the first media description information and the seventh media description information are included in the fifth m-segment within the first SDP offer information, then the second media description information and the eighth media description information are included in the sixth m-segment within the first SDP answer information, and the eighth media description information is an answer to the seventh media description information.
[0250] For a specific example of how the second communication device generates the first SDP answer information, please refer to the example in step S2041 of Figure 20. Further details are not provided here.
[0251] S1240: The framework layer sends the second media description information to the first application. In response, the first application receives the second media description information from the framework layer.
[0252] According to the technical solution provided in this application, a first application (IMS DC application) operating on a first communication device is a media resource of a first data channel and may transmit descriptive information (first media description information) provided by the first application to a framework layer / IMS component operating on the first communication device. The framework layer may transmit first SDP offer information, including the first media description information, to a second communication device. After receiving the first SDP offer information, the second communication device may transmit first SDP answer information, including second media description information, to the framework layer. The second media description information is the second communication device's answer to the first media description information. In this way, a media negotiation service for the data channel can be provided to the IMS DC application. In addition, in this embodiment of the present application, different IMS DC applications (a first application and a second application) can share a single IMS session context, the first communication device is supported when establishing data channels with multiple peer communication devices (a second communication device and a third communication device) in the IMS session context, and the IMS DC application is supported when specifying quality of service parameters for the data channels.
[0253] Optionally, prior to S1240, the framework layer obtains second media description information from the first SDP answer information. An example is provided below for explanation with reference to S1241.
[0254] Optionally, in S1241, the framework layer obtains second media description information from the first SDP answer information from the second communication device.
[0255] For example, if the first SDP answer information includes the second media description information, the fifth media description information, and / or the sixth media description information, the framework layer directly obtains the second media description information from the first answer information. The fifth media description information is the answer from the second communication device to the third media description information, and the sixth media description information is the answer from the second communication device to the fourth media description information. Based on this example, the second communication device may combine the second media description information, the fifth media description information, and / or the sixth media description information with the first SDP answer information and transmit the first SDP answer information to the framework layer operating on the first communication device.
[0256] For example, if the first SDP answer information includes the second media description information and indicates the correspondence between the first application and the first data channel, the second media description information and the information indicating the correspondence between the first application and the first data channel are included in the same m-segment within the first SDP answer information. Therefore, the framework layer removes the information indicating the correspondence between the first application and the first data channel from the m-segment in order to obtain the second media description information.
[0257] For example, if the first SDP answer information includes the second media description information and shows the correspondence between the second QoS parameter set and the second media description information, the information showing the correspondence between the second media description information and the second QoS parameter set is included in the same m-segment within the first SDP answer information. Therefore, the framework layer removes the information showing the correspondence between the second QoS parameter set and the second media description information from the m-segment in order to obtain the second media description information.
[0258] For example, if the first SDP answer information includes the second media description information and indicates the correspondence between the first application and the first data channel and the correspondence between the second QoS parameter set and the second media description information, then the second media description information, the information indicating the correspondence between the first application and the first data channel, and the information indicating the correspondence between the second QoS parameter set and the second media description information are all contained within the same m-segment in the first SDP answer information. Therefore, the framework layer removes the information indicating the correspondence between the first application and the first data channel and the information indicating the correspondence between the second QoS parameter set and the second media description information from the m-segment in order to obtain the second media description information.
[0259] For example, if the first SDP answer information includes the second media description information and the eighth media description information, and the second media description information and the eighth media description information are contained in different m-segments within the first SDP answer information, the framework layer retrieves the second media description information from the first SDP answer information. The eighth media description information is the answer of the second communication device to the seventh media description information.
[0260] For example, if the first SDP answer information includes the second and eighth media description information, and the second and eighth media description information are contained within the same m-segment in the first SDP answer information, the framework layer removes the a=dcmap row corresponding to the eighth media description information from the m-segment in order to retrieve the second media description information. Figure 19 shows an example of splitting media description information for different data channels. The identifier for the first data channel is 1001, the identifier for the second data channel is 3874, the identifier for the first application is application1, and the identifier for the second application is application2.
[0261] After the second communication device obtains the first SDP offer information and the first communication device obtains the first SDP answer information, the first and second communication devices may create an SCTP association and transmit and / or receive media information via the data channel. For specific procedures, please refer to steps S1012 to S1016 in Figure 10.
[0262] Optionally, the framework layer includes IMS components and an IMS DC signaling module. For example, the IMS DC signaling module in the framework layer receives first media description information from a first application. The IMS DC signaling module transmits the first media description information to the IMS components. The IMS components in the framework layer transmit first SDP offer information to a second communication device via an IMS network element. The first SDP offer information includes first media description information. The IMS components in the framework layer receive first SDP answer information from the second communication device via an IMS network element. The first SDP answer information includes second media description information. The IMS components transmit second media description information to the IMS DC signaling module. The IMS DC signaling module transmits second media description information to the first application. For specific illustrative flowcharts, see Figures 21A and 21B.
[0263] Figure 20 is another exemplary flowchart of a media negotiation method 2000 according to one embodiment of the present application. In method 2000, the framework layer includes IMS components, or the framework layer includes IMS components and an IMS DC signaling module. The first and second applications are IMS DC applications, and the media description information for the data channel is called an m-segment.
[0264] S2010: The first communication device transmits first SDP offer information to the framework layer via the IMS network element. The first SDP offer information includes first media description information. The first media description information is a description of the media resources of the first data channel, the first data channel is a channel used to transmit application data generated or consumed by the first application between the first communication device and the second communication device, and the framework layer operates on the second communication device. Optionally, the first application also operates on the second communication device. Correspondingly, the framework layer receives first SDP offer information from the first communication device via the IMS network element.
[0265] Optionally, the first communication device is the first terminal device, and the first terminal device is the calling terminal device. The second communication device is the second terminal device or server corresponding to the first application, and the second terminal device or server corresponding to the first application is the receiving terminal device.
[0266] Optionally, an IMS network element includes a P-CSCF network element. An IMS network element is one or more IMS network elements within an IMS network, and the first IMS network element that interacts with a first communication device within the IMS network is a P-CSCF network element. For example, the first communication device transmits first SDP offer information to the framework layer via one or more IMS network elements within the IMS network, and the framework layer receives first SDP offer information from the first communication device via one or more IMS network elements within the IMS network.
[0267] For example, the first SDP offer information further includes a third media description information and / or a fourth media description information. The third media description information is a description of the media resources of an audio channel for transmitting audio data for the call service of the first communication device, provided by the first communication device. The fourth media description information is a description of the media resources of a video channel for transmitting video data for the call service of the first communication device, provided by the first communication device.
[0268] Optionally, the first SDP offer information indicates the correspondence between the first application and the first data channel. For example, the first media description information includes a first attribute row and a second attribute row. The first attribute row includes parameter information for the first data channel, and the parameter information for the first data channel includes the identifier for the first data channel. The second attribute row includes the identifier for the first data channel and the identifier for the first application. The first attribute row is a=dcmap attribute row, and the second attribute row is a=3gpp-req-app attribute row. For example, the first media description information includes a third attribute row. The third attribute row includes parameter information for the first data channel and the identifier for the first application, and the parameter information for the first data channel includes the identifier for the first data channel. The third attribute row is a=dcmap attribute row.
[0269] Optionally, the first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information. For example, the first media description information includes the first QoS parameter set. For example, the first media description information includes a fourth attribute line, the fourth attribute line includes at least one QoS parameter in the first QoS parameter set. For example, the at least one QoS parameter includes packet loss rate and latency. For example, the fourth attribute line is the attribute line a=3gpp-qos-hint.
[0270] For example, the first SDP offer information further includes the seventh media description information. The seventh media description information is a description of the media resources of the second data channel, which is a channel for transmitting application data generated or consumed by the first application between the first communication device and the second communication device, or between the first communication device and the third communication device, or for transmitting application data generated or consumed by the second application. The first media description information and the seventh media description information are contained in the first m-segment and the second m-segment, respectively, within the first SDP offer information. It can be understood that the first media description information and the seventh media description information are contained in different m-segments within the first SDP offer information. Alternatively, the first media description information and the seventh media description information are contained in the fifth m-segment within the first SDP offer information. It can also be understood that the first media description information and the seventh media description information are contained in the same m-segment within the first SDP offer information.
[0271] S2020: The framework layer sends the first media description information to the first application. In response, the first application receives the first media description information from the framework layer.
[0272] For example, if the second communication device has not downloaded the first application when the framework layer receives the first SDP offer information, the second communication device downloads the first application based on the correspondence between the first application and the first data channel indicated by the first SDP offer information. After the second communication device has downloaded the first application, the framework layer sends the first media description information to the first application. For example, if the second communication device has downloaded the first application when the framework layer receives the first SDP offer information, the framework layer sends the first media description information directly to the first application.
[0273] Optionally, before step S2020, the framework layer acquires first media description information from first SDP offer information from a first communication apparatus.
[0274] Optionally, in step S2021, the framework layer acquires first media description information from the first SDP offer information.
[0275] For example, when the first SDP offer information includes the first media description information, third media description information, and / or fourth media description information, the framework layer directly acquires the first media description information from the first offer information.
[0276] For example, when the first SDP offer information includes the first media description information and indicates the correspondence between a first application and a first data channel, the first media description information and first indication information are included in the same m-segment in the first SDP offer information, so that, to acquire the first media description information, the framework layer deletes, from the m-segment, the information indicating the correspondence between the first application and the first data channel.
[0277] For example, when the first SDP offer information includes the first media description information and indicates the correspondence between a first QoS parameter set and the first media description information, the first media description information and the information indicating the correspondence between the first QoS parameter set and the first media description information are included in the same m-segment in the first SDP offer information, so that, to acquire the first media description information, the framework layer deletes, from the m-segment, the information indicating the correspondence between the first QoS parameter set and the first media description information.
[0278] For example, if the first SDP offer information includes first media description information and indicates the correspondence between a first application and a first data channel and the correspondence between a first QoS parameter set and the first media description information, the first media description information, the information indicating the correspondence between the first application and the first data channel, and the information indicating the correspondence between the first QoS parameter set and the first media description information are all contained in the same m-segment within the first SDP offer information. Therefore, the framework layer removes the information indicating the correspondence between the first application and the first data channel and the information indicating the correspondence between the first QoS parameter set and the first media description information from the m-segment in order to obtain the first media description information.
[0279] For example, if the first SDP offer information includes the first media description information and the seventh media description information, and the first media description information and the seventh media description information are contained in the first m-segment and the second m-segment within the first SDP offer information, respectively, then it can be understood that the first media description information and the seventh media description information are contained in different m-segments within the first SDP offer information, and the framework layer retrieves the first media description information from the first offer information.
[0280] For example, if the first SDP offer information includes the first media description information and the seventh media description information, and the first and seventh media description information are contained within the fifth m-segment of the first SDP offer information, then the first and seventh media description information are contained within the same m-segment of the first SDP offer information, and the framework layer may understand that in order to obtain the first media description information, it should remove the a=dcmap row corresponding to the seventh media description information from the m-segment.
[0281] S2030: The first application sends the second media description information to the framework layer. The second media description information is the first application's answer to the first media description information, which is running on the second communication device. Alternatively, the second media description information may be understood as the second communication device's answer to the first media description information. For example, the first application sends the second media description information to the framework layer by calling the IMS DC signaling API. In response, the framework layer receives the second media description information from the first application.
[0282] For example, the first application triggers the JSEP implementation to generate second SDP answer information by calling the createOffer API included in the WebAPI layer, based on the first media description information. The second SDP answer information includes the second media description information. The first application sends the second SDP answer information to the framework layer. After the framework layer receives the second SDP answer information from the first application, the framework layer obtains the second media description information from the second SDP answer information. For a specific implementation of how the first application running on the second communication device triggers the JSEP implementation to generate the second SDP answer information, please refer to steps S1006 to S1009 in Figure 10. S2040: The framework layer sends the first SDP answer information to the first communication device via the IMS network element. The first SDP answer information includes the second media description information. In response to this, the first communication device receives first SDP answer information from the framework layer via the IMS network element.
[0283] In the aforementioned technical solution provided in this embodiment, after receiving first SDP offer information including first media description information from the first communication device, the framework layer / IMS component operating on the second communication device may transmit the first media description information to the first application (IMS DC application) operating on the second communication device. After receiving the first media description information, the first application transmits second media description information to the framework layer. The second media description information is an answer to the first media description information. The framework layer may transmit first SDP answer information including the second media description information to the first communication device. In this way, a data channel media negotiation service can be provided to the IMS DC application.
[0284] Optionally, before S2040, the second communication device generates the first SDP answer information. An example is provided below with reference to S2041.
[0285] Optionally, in S2041, the second communication device generates first SDP answer information based on first SDP offer information from the framework layer. The first SDP offer information includes first media description information, and the first SDP answer information includes second media description information.
[0286] For example, the first SDP offer information further includes a third media description information and / or a fourth media description information, and the first SDP answer information generated by the second communication device further includes a fifth media description information and / or a sixth media description information. The fifth media description information is the second communication device's answer to the third media description information, and the sixth media description information is the second communication device's answer to the fourth media description information.
[0287] For example, if the first SDP offer information further indicates the correspondence between the first application and the first data channel, the first SDP answer information generated by the second communication device further indicates the correspondence between the first application and the first data channel. The second media description information and the information indicating the correspondence between the first application and the first data channel are contained in the same m-segment within the first SDP answer information.
[0288] For example, if the first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information, the first SDP answer information generated by the second communication device further indicates the correspondence between the second QoS parameter set and the second media description information, where the second QoS parameter set is the second communication device's answer to the first QoS parameter set. The second media description information and the third instruction information are contained within the same m-segment in the first SDP answer information. For example, the second media description information includes the second QoS parameter set. For example, the second media description information includes a fourth attribute line, the fourth attribute line includes at least one QoS parameter in the second QoS parameter set. For example, the at least one QoS parameter includes packet loss rate and latency.
[0289] For example, if the first SDP offer information further indicates the correspondence between a first application and a first data channel, and the correspondence between a first QoS parameter set and first media description information, then the first SDP answer information generated by the second communication device further indicates the correspondence between the first application and a first data channel, and the correspondence between a second QoS parameter set and second media description information. The second media description information, the information indicating the correspondence between the first application and the first data channel, and the information indicating the correspondence between the second QoS parameter set and second media description information are all contained within the same m-segment in the first SDP answer information.
[0290] For example, if the first SDP offer information further includes the seventh media description information, the first SDP answer information generated by the second communication device further includes the eighth media description information. The eighth media description information is the second communication device's answer to the seventh media description information.
[0291] If the first media description information and the seventh media description information are included in the fifth m-segment within the first SDP offer information, the second media description information and the eighth media description information are included in the sixth m-segment within the first SDP answer information. Alternatively, if the first media description information and the seventh media description information are included in the first m-segment and the second m-segment, respectively, within the first SDP offer information, the second media description information and the eighth media description information are included in the third m-segment and the fourth m-segment, respectively, within the first SDP answer information.
[0292] For example, if the first SDP offer information further includes a seventh media description information indicating a correspondence between a first application and a first data channel and / or a correspondence between a first QoS parameter set and the first media description information, then the first SDP answer information generated by the second communication device further includes an eighth media description information indicating a correspondence between a first application and a first data channel and / or a correspondence between a second QoS parameter set and the second media description information.
[0293] After the second communication device obtains the first SDP offer information and the first communication device obtains the first SDP answer information, the first and second communication devices may create an SCTP association and transmit and / or receive media information via the data channel. For specific procedures, please refer to steps S1012 to S1016 in Figure 10.
[0294] Optionally, the framework layer includes an IMS component and an IMS DC signaling module. For example, the IMS component in the framework layer receives first SDP offer information from a first communication device via an IMS network element. The IMS component sends the first SDP offer information to the IMS DC signaling module in the framework layer. The IMS DC signaling module sends first media description information to a first application. The first application sends second media description information to the IMS DC signaling module. The IMS DC signaling module sends the second media description information to the IMS component. The IMS component sends first SDP answer information to the first communication device via the IMS network element. The first SDP answer information includes the second media description information. Reference is made to FIGS. 22A and 22B for a specific exemplary flowchart.
[0295] FIGS. 21A and 21B are another exemplary flowchart of a media negotiation method 2100 according to an embodiment of the present application. In the method 2100, the first communication device includes a framework layer and a first application. The framework layer includes an IMS component and an IMS DC signaling module. The first application and the second application are IMS DC applications, and media description information of a data channel is referred to as an m-segment.
[0296] S2101: The first application transmits first media description information to the IMS DC signaling module. The first media description information is a description of the media resources of a first data channel, provided by the first application, and the first data channel is a channel used to transmit application data generated or consumed by the first application between the first communication device and the second communication device, and both the IMS DC signaling module and the first application operate on the first communication device. For example, the first application transmits the first media description information to the IMS DC signaling module by calling the IMS DC signaling API. In response, the IMS DC signaling module receives the first media description information from the first application. Optionally, the first communication device is the first terminal device, and the first terminal device is the calling terminal device.
[0297] For example, the first application triggers the JSEP implementation to generate second SDP offer information by calling the createOffer API included in the WebAPI layer. The second SDP offer information includes the first media description information. The first application sends the second SDP offer information to the IMS DC signaling module. After the IMS DC signaling module receives the second SDP offer information from the first application, it obtains the first media description information from the second SDP offer information. For a specific implementation of how the first application running on the first communication device triggers the JSEP implementation to generate the second SDP offer information, please refer to steps S1001 to S1004 in Figure 10.
[0298] S2102: The IMS DC signaling module processes the first media description information, or an m-segment containing the first media description information.
[0299] An IMS session may support multiple applications or only one IMS DC application. If an IMS session supports only one IMS DC application and a second communication device downloads the first application, the IMS DC signaling module does not need to indicate the correspondence between the first application and the first data channel to the second communication device. If an IMS session supports only one IMS DC application and the second communication device has not downloaded the first application, the IMS DC signaling module must indicate the correspondence between the first application and the first data channel to the second communication device. When an IMS session supports multiple IMS DC applications, the IMS DC signaling module must indicate the correspondence between the first application and the first data channel to the second communication device so that the second communication device can know which application uses the first data channel.
[0300] Optionally, if an IMS session supports only one IMS DC application and the second communication device has not downloaded the first application, or if an IMS session supports multiple IMS DC applications, the IMS DC signaling module must indicate to the second communication device the correspondence between the first application and the first data channel. The IMS DC signaling module adds a second attribute line to the m-segment containing the first media description information. The second attribute line contains the identifier of the first data channel and the identifier of the first application. The first media description information further contains a first attribute line, the first attribute line contains parameter information for the first data channel, and the parameter information for the first data channel contains the identifier of the first data channel. The first attribute line is the a=dcmap attribute line, and the second attribute line is the a=3gpp-req-app attribute line.
[0301] Optionally, if an IMS session supports only one IMS DC application and the second communication device has not downloaded the first application, or if an IMS session supports multiple IMS DC applications, the IMS DC signaling module must indicate to the second communication device the correspondence between the first application and the first data channel. The IMS DC signaling module adds the identifier of the first application to the parameter information of the first data channel included in the first media description information. Specifically, the first media description information includes a third attribute line, the third attribute line includes the parameter information of the first data channel and the identifier of the first application, and the parameter information of the first data channel includes the identifier of the first data channel. The third attribute line is the a=dcmap attribute line. See Figures 13 and 14 for an example that reflects the correspondence between the first application and the first data channel.
[0302] Optionally, the first application sends a first QoS parameter set to the IMS DC signaling module. The first QoS parameter set includes at least one QoS parameter for a first data channel, provided by the first application. Correspondingly, the IMS DC signaling module receives the first QoS parameter set from the first application. For example, second SDP offer information further includes the first QoS parameter set. When the IMS DC signaling module receives the first QoS parameter set from the first application, it adds the first QoS parameter set to the m-segment containing first media description information. The first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information. For example, the first media description information includes a fourth attribute row, the fourth attribute row includes at least one QoS parameter in the first QoS parameter set. For example, at least one QoS parameter includes packet loss rate and latency. For example, the fourth attribute row is the a=3gpp-qos-hint attribute row. See Figure 15 for an example of adding QoS parameters to the m segment.
[0303] Optionally, the first application sends first instruction information to the IMS DC signaling module. The first instruction information indicates that the first data channel will use an independent bearer. An independent bearer means that the first data channel and another data channel are not in the same SCTP association, and the other data channel is a data channel other than the first data channel. The other data channel may be a data channel other than the first data channel that the first application needs to create, or a data channel that another application needs to create. In response, the IMS DC signaling module receives further first instruction information from the first application. If the IMS DC signaling module determines that the seventh media description information already exists in the IMS component and has received the first instruction information, the IMS DC signaling module decides not to combine the first media description information and the seventh media description information in the same m-segment. The first media description information and the seventh media description information are included in the first m-segment and the second m-segment, respectively, within the first SDP offer information. The seventh media description information is a description of the media resource of the second data channel, the second data channel being a channel for transmitting application data generated or consumed by the first application between the first communication device and the second communication device, or between the first communication device and the third communication device, or for transmitting application data by the second application.
[0304] Optionally, if the IMS DC signaling module determines that a seventh media description information already exists in the IMS component and that it will receive a first QoS parameter set from a first application, the IMS DC signaling module decides not to combine the first media description information and the seventh media description information in the same m-segment. The first media description information and the seventh media description information are included in the first m-segment and the second m-segment, respectively, within the first SDP offer information.
[0305] Optionally, if the IMS DC signaling module determines that the seventh media description information already exists in the IMS component and does not receive the first instruction information or the first QoS parameter set from the first application, the IMS DC signaling module decides to combine the first media description information and the seventh media description information into the same m-segment. It may be understood that the first and seventh media description information are contained in the fifth m-segment within the first SDP offer information. For example, the IMS DC signaling module may add to the m-segment already containing the seventh media description information an a=dcmap attribute line corresponding to the first media description information and a second attribute line containing the identifier of the first data channel and the identifier of the first application.
[0306] S2103: The IMS DC signaling module transmits to the IMS component the processed first media description information, or a second m segment containing the first media description information and a seventh media description information, or a fifth m segment obtained by combining the first media description information and the seventh media description information. In response, the IMS component receives from the IMS DC signaling module the processed first media description information, or a second m segment containing the first media description information and a seventh media description information, or a fifth m segment obtained by combining the first media description information and the seventh media description information.
[0307] For example, the first SDP offer information includes the processed first media description information. For example, the first SDP offer information includes the first media description information, the processed first media description information includes a third attribute row, the third attribute row includes parameter information for the first data channel and an identifier for the first application, and the parameter information for the first data channel includes an identifier for the first data channel. The third attribute row is the a=dcmap attribute row.
[0308] In another example, the processed first media description information includes a first attribute row and a second attribute row. The first attribute row contains parameter information for the first data channel, and the parameter information for the first data channel contains the identifier for the first data channel. The second attribute row contains the identifier for the first data channel and the identifier for the first application. In yet another example, the processed first media description information includes a first QoS parameter set, showing the correspondence between the first QoS parameter set and the first media description information.
[0309] S2104: The IMS component generates first SDP offer information. The first SDP offer information includes processed first media description information, or a first m-segment containing the first media description information and a second m-segment containing the seventh media description information, or a fifth m-segment obtained by combining the first media description information and the seventh media description information. In particular, the IMS component generates first SDP offer information based on processed first media description information, or a first m-segment containing the first media description information and a second m-segment containing the seventh media description information, or a fifth m-segment obtained by combining the first media description information and the seventh media description information.
[0310] Optionally, the first SDP offer information further includes third media description information and / or fourth media description information. The third media description information is a description of the media resources for an audio channel, provided by the framework layer, which is used to transmit audio data for the call service of the first communication device. The fourth media description information is a description of the media resources for a video channel, provided by the framework layer, for transmitting video data for the call service of the first communication device.
[0311] S2105: The IMS component transmits the first SDP offer information to the second communication device via the IMS network element. In response, the second communication device receives the first SDP offer information from the IMS component via the IMS network element.
[0312] Optionally, an IMS network element includes a P-CSCF network element. An IMS network element is one or more IMS network elements within an IMS network, and the first IMS network element that interacts with an IMS component within the IMS network is a P-CSCF network element. For example, an IMS component transmits first SDP offer information to a second communication device via one or more IMS network elements within the IMS network, and the second communication device receives first SDP offer information from the IMS component via one or more IMS network elements within the IMS network.
[0313] S2106: The second communication device generates first SDP answer information based on the first SDP offer information.
[0314] For example, if the first SDP offer information includes the processed first media description information, the first SDP answer information generated by the second communication device further includes the second media description information, which is the second media description information's answer from the second communication device to the first media description information.
[0315] For example, if the first SDP offer information includes first media description information and indicates the correspondence between a first application and a first data channel, then the first SDP answer information generated by the second communication device includes second media description information and indicates the correspondence between the first application and the first data channel.
[0316] For example, if the first SDP offer information includes the first media description information and indicates the correspondence between the first QoS parameter set and the first media description information, then the first SDP answer information generated by the second communication device includes the second media description information and indicates the correspondence between the second QoS parameter set and the second media description information. The second QoS parameter set is the second communication device's answer to the first QoS parameter set.
[0317] For example, if the first SDP offer information includes first media description information and indicates the correspondence between a first application and a first data channel and / or the correspondence between a first QoS parameter set and the first media description information, then the first SDP answer information generated by the second communication device includes second media description information and indicates the correspondence between a first application and a first data channel and the correspondence between a second QoS parameter set and the second media description information.
[0318] For example, the first SDP offer information includes the first media description information and the seventh media description information, and the first SDP answer information generated by the second communication device includes the second media description information and the eighth media description information. The eighth media description information is the second communication device's answer to the seventh media description information. If the second media description information and the eighth media description information are included in the third and fourth m-segments, respectively, within the first SDP answer information, then the second media description information and the eighth media description information may be understood as being included in the same m-segment within the first SDP offer information after being combined by the second communication device. Alternatively, if the second media description information and the eighth media description information are included in the sixth m-segment within the first SDP answer information, then the eighth media description information and the second media description information may be understood as being included in different m-segments within the first SDP answer information.
[0319] If the first media description information and the seventh media description information are included in the fifth m-segment within the first SDP offer information, the second media description information and the eighth media description information are included in the sixth m-segment within the first SDP answer information. Alternatively, if the first media description information and the seventh media description information are included in the first m-segment and the second m-segment, respectively, within the first SDP offer information, the second media description information and the eighth media description information are included in the third m-segment and the fourth m-segment, respectively, within the first SDP answer information.
[0320] For example, if the first SDP offer information includes first media description information, seventh media description information, first instruction information, and / or second instruction information, the first SDP answer information generated by the second communication device includes second media description information and eighth media description information, and indicates the correspondence between the first application and the first data channel and / or the correspondence between the second QoS parameter set and the second media description information.
[0321] S2107: The second communication device transmits the first SDP answer information to the IMS component via the IMS network element. In response, the IMS component receives the first SDP answer information from the second communication device via the IMS network element.
[0322] S2108: The IMS component obtains data channel-related information from the first SDP answer information and transmits the data channel-related information to the IMS DC signaling module. The data channel-related information includes the second media description information, or the second media description information and the eighth media description information. In response, the IMS DC signaling module receives the data channel-related information from the IMS component.
[0323] If the data channel-related information includes a second media description information and an eighth media description information, the second media description information and the eighth media description information may be combined by the second communication device and then be in the same m-segment, or the second media description information and the eighth media description information may be in different m-segments.
[0324] S2109: The IMS DC signaling module obtains second media description information from data channel-related information.
[0325] For example, if data channel-related information includes a second media description and an eighth media description, and the second and eighth media description are combined by a second communication device and then remain within the same m-segment, the IMS DC signaling module will split the combined second and eighth media description in order to obtain the second media description. See Figure 19 for a specific example of splitting media description information for different data channels.
[0326] For example, if the data channel-related information includes a second media description and an eighth media description, and the second and eighth media description are located in different m-segments, the IMS DC signaling module will directly obtain the second media description from the data channel-related information.
[0327] S2110: The IMS DC signaling module sends the second media description information to the first application. In response, the first application receives the second media description information from the IMS DC signaling module.
[0328] After the second communication device obtains the first SDP offer information and the first communication device obtains the first SDP answer information, the first and second communication devices may create an SCTP association and transmit and / or receive media information via the data channel. For specific procedures, please refer to steps S1012 to S1016 in Figure 10.
[0329] Figures 22A and 22B are another exemplary flowchart of a media negotiation method 2200 according to one embodiment of the present application. In method 2200, a second communication device includes a framework layer and a first application. The framework layer includes IMS components and an IMS DC signaling module. The first and second applications are IMS DC applications, and the media description information for the data channel is called an m-segment.
[0330] S2201: The first communication device transmits first SDP offer information to the IMS component via the IMS network element. The first SDP offer information includes first media description information. The first media description information is a description of the media resources of a first data channel, the first data channel being a channel used for transmitting application data generated or consumed by a first application between the first communication device and the second communication device, and the IMS component operating on the second communication device. Optionally, the first application also operates on the second communication device. Correspondingly, the IMS component receives first SDP offer information from the first communication device via the IMS network element.
[0331] Optionally, the first communication device is the first terminal device, and the first terminal device is the calling terminal device. The second communication device is the second terminal device or server corresponding to the first application, and the second terminal device or server corresponding to the first application is the receiving terminal device.
[0332] Optionally, an IMS network element includes a P-CSCF network element. An IMS network element is one or more IMS network elements within an IMS network, and the first IMS network element that interacts with a first communication device within the IMS network is a P-CSCF network element. For example, the first communication device transmits first SDP offer information to an IMS component via one or more IMS network elements within the IMS network, and the IMS component receives first SDP offer information from the first communication device via one or more IMS network elements within the IMS network.
[0333] For example, the first SDP offer information further includes a third media description information and / or a fourth media description information. The third media description information is a description of the media resources of an audio channel for transmitting audio data for the call service of the first communication device, provided by the first communication device. The fourth media description information is a description of the media resources of a video channel for transmitting video data for the call service of the first communication device, provided by the first communication device.
[0334] Optionally, the first SDP offer information indicates the correspondence between the first application and the first data channel. For example, the first media description information includes a first attribute row and a second attribute row. The first attribute row includes parameter information for the first data channel, and the parameter information for the first data channel includes the identifier for the first data channel. The second attribute row includes the identifier for the first data channel and the identifier for the first application. The first attribute row is a=dcmap attribute row, and the second attribute row is a=3gpp-req-app attribute row. For example, the first media description information includes a third attribute row. The third attribute row includes parameter information for the first data channel and the identifier for the first application, and the parameter information for the first data channel includes the identifier for the first data channel. The third attribute row is a=dcmap attribute row.
[0335] Optionally, the first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information. For example, the first media description information includes the first QoS parameter set. For example, the first media description information includes a fourth attribute line, the fourth attribute line includes at least one QoS parameter in the first QoS parameter set. For example, the fourth attribute line is the a=3gpp-qos-hint attribute line. For example, the fourth attribute line is the a=3gpp-qos-hint attribute line. For example, at least one QoS parameter includes packet loss rate and latency.
[0336] For example, the first SDP offer information further includes the seventh media description information. The seventh media description information is a description of the media resources of the second data channel, which is a channel for transmitting application data generated or consumed by the first application between the first communication device and the second communication device, or between the first communication device and the third communication device, or for transmitting application data generated or consumed by the second application. The first media description information and the seventh media description information are contained in the first m-segment and the second m-segment, respectively, within the first SDP offer information. It can be understood that the first media description information and the seventh media description information are contained in different m-segments within the first SDP offer information. Alternatively, the first media description information and the seventh media description information are contained in the fifth m-segment within the first SDP offer information. It can also be understood that the first media description information and the seventh media description information are contained in the same m-segment within the first SDP offer information.
[0337] S2202: The IMS component obtains data channel-related information from the first SDP offer information and transmits the data channel-related information to the IMS DC signaling module. The data channel-related information includes the first media description information, or the first media description information and the seventh media description information. In response, the IMS DC signaling module receives the data channel-related information from the IMS component.
[0338] If the data channel-related information includes first media description information and seventh media description information, the first media description information and seventh media description information may be combined by the first communication device and then be in the same m-segment, or the first media description information and seventh media description information may be in different m-segments.
[0339] S2203: The IMS DC signaling module obtains the first media description information from the data channel-related information.
[0340] For example, if data channel-related information includes first media description information and seventh media description information, and the first and seventh media description information are combined by a first communication device and then located within the same m-segment, the IMS DC signaling module separates the combined first and seventh media description information in order to obtain the first media description information.
[0341] For example, if the data channel-related information includes a first media description and a seventh media description, and the first and seventh media description are in different m-segments, the IMS DC signaling module directly obtains the first media description from the data channel-related information. S2204: The IMS DC signaling module sends the first media description to the first application. In response, the first application receives the first media description from the IMS DC signaling module.
[0342] For example, if the second communication device has not downloaded the first application when the IMS component receives the first SDP offer information, the second communication device downloads the first application based on the first instruction information contained in the first SDP offer information. After the second communication device has downloaded the first application, the IMS DC signaling module sends the first media description information to the first application. For example, if the second communication device has downloaded the first application when the IMS component receives the first SDP offer information, the IMS DC signaling module sends the first media description information directly to the first application.
[0343] S2205: The first application sends the second media description information to the IMS DC signaling module. The second media description information is the first application's answer to the first media description information, which is running on the second communication device. Alternatively, the second media description information may be understood as the second communication device's answer to the first media description information. For example, the first application generates the second media description information by triggering the JSEP implementation based on the first media description information and by calling the createOffer API included in the WebAPI layer. The first application sends the second media description information to the IMS DC signaling module. For example, the first application sends the second media description information to the IMS DC signaling module by calling the IMS DC signaling API. In response, the IMS DC signaling module receives the second media description information from the first application.
[0344] For example, the first application triggers the JSEP implementation to generate second SDP answer information by calling the createOffer API included in the WebAPI layer, based on the first media description information. The second SDP answer information includes second media description information. The first application sends the second SDP answer information to the IMS DC signaling module. After the IMS DC signaling module receives the second SDP answer information from the first application, it obtains the second media description information from the second SDP answer information. For a specific implementation of how the first application running on the second communication device triggers the JSEP implementation to generate the second SDP answer information, please refer to steps S1006 to S1009 in Figure 10.
[0345] S2206: The IMS DC signaling module processes the second media description information, or the m-segment containing the second media description information.
[0346] Optionally, if the first media description information obtained by the IMS DC signaling module includes a second attribute row, the IMS DC signaling module adds the second attribute row to the m-segment containing the second media description information. The second attribute row includes the identifier of the first data channel and the identifier of the first application.
[0347] Optionally, if the first media description information obtained by the IMS DC signaling module includes a third attribute row, the IMS DC signaling module adds the identifier of the first application to the parameter information of the first data channel included in the second media description information. Specifically, the first media description information includes a third attribute row, the third attribute row includes the parameter information of the first data channel and the identifier of the first application, and the parameter information of the first data channel includes the identifier of the first data channel. The third attribute row is the a=dcmap attribute row.
[0348] Optionally, if the first media description information obtained by the IMS DC signaling module includes a first QoS parameter set, the IMS DC signaling module adds a second QoS parameter set to the m-segment containing the second media description information. The second QoS parameter set is the second communication device's answer to the first QoS parameter set. For example, the first media description information includes a fourth attribute line, the fourth attribute line includes at least one QoS parameter in the second QoS parameter set. For example, the at least one QoS parameter includes packet loss rate and latency. For example, the fourth attribute line is the a=3gpp-qos-hint attribute line.
[0349] Optionally, if the data channel-related information received from the IMS component by the IMS DC signaling module includes a first media description and a seventh media description, and the first and seventh media description are included in a fifth m-segment within the first SDP offer information (the first and seventh media description are in the same m-segment after being combined by the first communication device), the IMS DC signaling module incorporates the second and eighth media description into the same m-segment. The second and eighth media description are included in a sixth m-segment within the first SDP answer information. The eighth media description is the second communication device's answer to the seventh media description. For example, the IMS DC signaling module may add an a=dcmap attribute line corresponding to the eighth media description and a second attribute line containing the identifier of the first data channel and the identifier of the first application to the m-segment that already contains the second media description.
[0350] Optionally, if the data channel-related information received from the IMS component by the IMS DC signaling module includes a first media description and a seventh media description, and these are included in the first and second m-segments, respectively, within the first SDP offer information (the first and seventh media description are in different m-segments), the IMS DC signaling module does not include the second and eighth media description in the same m-segment. The second and eighth media description are included in the third and fourth m-segments, respectively, within the first SDP answer information. The eighth media description is the second communication device's answer to the seventh media description.
[0351] S2207: The IMS DC signaling module transmits to the IMS component the processed second media description information, or the third m-segment containing the second media description information and the fourth m-segment containing the eighth media description information, or the sixth m-segment obtained by combining the second media description information and the eighth media description information. In response, the IMS component receives from the IMS DC signaling module the processed second media description information, or the fourth m-segment containing the third m-segment containing the second media description information and the eighth media description information, or the sixth m-segment obtained by combining the second media description information and the eighth media description information.
[0352] For example, the first SDP answer information includes the processed second media description information. For example, the first SDP answer information includes the second media description information, the processed second media description information includes a third attribute row, the third attribute row includes parameter information for the first data channel and an identifier for the first application, and the parameter information for the first data channel includes an identifier for the first data channel. The third attribute row is the a=dcmap attribute row.
[0353] In another example, the processed second media description information includes a first attribute row and a second attribute row. The first attribute row contains parameter information for the first data channel, and the parameter information for the first data channel contains the identifier for the first data channel. The second attribute row contains the identifier for the first data channel and the identifier for the first application. In yet another example, the processed second media description information includes a second QoS parameter set, showing the correspondence between the second QoS parameter set and the second media description information.
[0354] S2208: The IMS component generates first SDP answer information. The first SDP answer information includes processed second media description information, or an m-segment containing the second media description information and an m-segment containing the eighth media description information, or an m-segment obtained by combining the second media description information and the eighth media description information.
[0355] The first SDP answer information further includes the fifth media description information and / or the sixth media description information. The fifth media description information is the second communication device's answer to the third media description information, and the sixth media description information is the second communication device's answer to the fourth media description information.
[0356] S2209: The IMS component transmits the first SDP answer information to the first communication device via the IMS network element. In response, the first communication device receives the first SDP answer information from the IMS component via the IMS network element.
[0357] Optionally, an IMS network element includes a P-CSCF network element. An IMS network element is one or more IMS network elements within an IMS network, and the first IMS network element that interacts with an IMS component within the IMS network is a P-CSCF network element. For example, an IMS component transmits first SDP answer information to a first communication device via one or more IMS network elements within the IMS network, and the first communication device receives first SDP answer information from the IMS component via one or more IMS network elements within the IMS network.
[0358] After the second communication device obtains the first SDP offer information and the first communication device obtains the first SDP answer information, the first and second communication devices may create an SCTP association and transmit and / or receive media information via the data channel. For specific procedures, please refer to steps S1012 to S1016 in Figure 10.
[0359] In correspondence with the method provided in the aforementioned method embodiment, one embodiment of the present application further provides a corresponding apparatus. The apparatus includes a corresponding module configured to perform the aforementioned method embodiment. The module may be software, hardware, or a combination of software and hardware. It can be understood that the technical features described in the aforementioned method embodiment are also applicable to the following apparatus embodiment. Therefore, for matters not described in detail, please refer to the aforementioned method embodiment. For brevity, details will not be described again here.
[0360] Figure 23 is a schematic block diagram of a communication device 10 according to one embodiment of the present application. The device 10 includes a transceiver module 11 and / or a processing module 12. The transceiver module 11 may perform corresponding communication functions. The processing module 12 is configured to perform data processing. In other words, the transceiver module 11 is configured to perform receive and transmit-related operations. The processing module 12 is configured to perform operations other than receive and transmit. The transceiver module 11 is sometimes referred to as a communication interface or communication unit.
[0361] Optionally, the device 10 may further include a storage module 13. The storage module 13 may be configured to store instructions and / or data. The processing module 12 may read instructions and / or data from the storage module so that the device performs the operation of the device or network element in the embodiments of the method described above.
[0362] In one design, the device 10 may correspond to the framework layer in the method embodiment described above (for example, the framework layer in Figure 12 or Figure 20), or to a component of the framework layer (for example, a chip).
[0363] The device 10 may perform the corresponding steps or procedures performed by the framework layer in the embodiments of the method described above. The transceiver module 11 may be configured to perform the transmit / receive related operations of the framework layer in the embodiments of the method described above. The processing module 12 may be configured to perform the processing related operations of the framework layer in the embodiments of the method described above.
[0364] In possible implementations, the device 10 may perform steps or procedures performed by the framework layer in method 1200 of the method embodiment described above. For example, the transceiver module 11 is configured to receive first media description information from a first application. The first media description information is a description of media resources for a first data channel provided by the first application, and the first data channel is a channel for transmitting application data generated or consumed by the first application between a first communication device and a second communication device, with both the framework layer and the first application operating on the first communication device.
[0365] In possible implementations, the device 10 may perform steps or procedures performed by the framework layer in method 2000 of the method embodiment described above. For example, the transceiver module 11 is configured to receive first SDP offer information from a first communication device. The first SDP offer information includes first media description information, the first media description information being for media resources of a first data channel provided by a first application, the first data channel being a channel used for transmitting application data generated or consumed by the first application between a first communication device and a second communication device, the first application running on the first and second communication devices, and the framework layer running on the second communication device.
[0366] It should be understood that the specific process by which the module performs the corresponding steps described above has already been explained in detail in the embodiments of the method described above. For the sake of brevity, the details will not be explained again here.
[0367] It may be further understood that the apparatus 10 described herein is embodied in the form of a functional module. The term “module” herein may also mean an application-specific integrated circuit (ASIC), an electronic circuit, a processor (e.g., a shared processor, a dedicated processor, or a group processor) configured to run one or more software or firmware programs, memory, combinational logic circuits, and / or other suitable components that support the described functions. In an optional example, those skilled in the art will understand that the apparatus 10 may specifically be a terminal device in the embodiments described above and may be configured to perform procedures and / or steps corresponding to a terminal device in the embodiments of the methods described above, or the apparatus 10 may specifically be a network device in the embodiments described above and may be configured to perform procedures and / or steps corresponding to a network device in the embodiments of the methods described above. For the sake of avoiding repetition, further details are not described herein.
[0368] The device 10 in the aforementioned solution has the function of performing the corresponding steps performed by the framework layer in the method described above. The function may be performed by hardware, or by hardware that runs the corresponding software. The hardware or software includes one or more modules corresponding to the function described above. For example, a transceiver module may be replaced with a transceiver (for example, a transmitting unit in a transceiver module may be replaced with a transmitter, and a receiving unit in a transceiver module may be replaced with a receiver), and another unit, such as a processing module, may be replaced with a processor to separately perform the receiving and transmitting operations and processing-related operations in the method embodiment.
[0369] In addition, the transceiver module 11 may alternatively be a transceiver circuit (for example, it may include a receiving circuit and a transmitting circuit), and the processing module may be a processing circuit.
[0370] Figure 24 is a diagram of another communication device 20 according to one embodiment of the present application. The device 20 includes a processor 21. The processor 21 is configured to execute computer programs or instructions stored in memory 22, or to read data / signaling stored in memory 22, in order to perform the method in the embodiments of the method described above. Optionally, one or more processors 21 are present.
[0371] Optionally, as shown in Figure 24, the device 20 further includes a memory 22, which is configured to store computer programs or instructions and / or data. The memory 22 may be integrated with the processor 21 or located separately. Optionally, one or more memories 22 may be present.
[0372] Optionally, as shown in Figure 24, the device 20 further includes a transceiver 23, which is configured to receive and / or transmit signals. For example, a processor 21 is configured to control the transceiver 23 to receive and / or transmit signals.
[0373] In one solution, the device 20 is configured to perform the operations performed by the framework layer in the method embodiment described above.
[0374] It can be understood that the processor in this embodiment of the present application may be a central processing unit (CPU), or may be another general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or another programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc. The general-purpose processor may be a microprocessor, or the processor may be any conventional processor, etc.
[0375] It may be further understood that the memory in this embodiment of the present application may be volatile memory and / or non-volatile memory. Non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory may be random access memory (RAM). For example, RAM may be used as an external cache. RAM may include, but is not limited to, several forms, such as static random access memory (static RAM, SRAM), dynamic random access memory (dynamic RAM, DRAM), synchronous dynamic random access memory (synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (double data rate SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (enhanced SDRAM, ESDRAM), synchlink dynamic random access memory (synchlink DRAM, SLDRAM), and direct rambus random access memory (direct rambus RAM, DR RAM).
[0376] Note that if the processor is a general-purpose processor, DSP, ASIC, FPGA, or another programmable logic device, discrete gate or transistor logic device, or discrete hardware component, memory (storage module) may be integrated into the processor.
[0377] It should be further noted that the memories described herein are intended to include, but are not limited to, these memories and any other memories of appropriate types.
[0378] Figure 25 shows a chip system 30 according to one embodiment of the present application. The chip system 30 (or referred to as the processing system) includes a logic circuit 31 and an input / output interface 32.
[0379] The logic circuit 31 may be a processing circuit within the chip system 30. The logic circuit 31 may be coupled to a memory unit and call instructions within the memory unit, thereby enabling the chip system 30 to implement the methods and functions of the embodiments of this application. The input / output interface 32 may also be an input / output circuit within the chip system 30 that outputs information processed by the chip system 30 or inputs data or signaling information to be processed into the chip system 30 for processing.
[0380] In one solution, the chip system 30 is configured to perform operations that are carried out by the network function virtualization orchestrator in the embodiment of the method described above.
[0381] For example, the logic circuit 31 is configured to perform processing-related operations performed by the framework layer in the embodiments of the method described above, for example, processing-related operations performed by the framework layer in the embodiments shown in Figure 12 or Figure 20. The input / output interface 32 is configured to perform transmission-related operations and / or reception-related operations performed by the first terminal device in the embodiments of the method described above, for example, transmission-related operations and / or reception-related operations performed by the framework layer in the embodiments shown in Figure 12 or Figure 20.
[0382] One embodiment of this application further provides a computer-readable storage medium. The computer-readable storage medium stores computer instructions for carrying out a method performed by a device in the method embodiment described above.
[0383] One embodiment of this application further provides a computer program product including instructions. When the instructions are executed by a computer, a method is employed in the above-described method embodiment that is executed by a device.
[0384] One embodiment of this application further provides a communication system including the first and second communication devices described above. Optionally, the communication system further includes the third communication device described above.
[0385] For a description of the relevant aspects and beneficial effects of any of the devices provided above, please refer to the corresponding embodiments of the methods provided above. Details will not be repeated here.
[0386] In the various embodiments provided in this application, it should be understood that the disclosed apparatus and methods may be implemented in other ways. For example, the embodiments of the apparatus described are merely examples. For example, the division of units is only a logical division of function, and other divisions may be used in practice. For example, multiple units or components may be combined or integrated to form a different system, and some features may be ignored or not performed. In addition, the mutual coupling, direct coupling, or communication connection shown or described may be implemented through some interfaces. Indirect coupling or communication connection between devices or units may be implemented in electronic, mechanical, or other forms.
[0387] All or part of the embodiments described above may be implemented by software, hardware, firmware, or any combination thereof. When software is used to implement an embodiment, all or part of the embodiment may be implemented in the form of a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded into a computer and executed, all or part of the procedures or functions according to the embodiments of this application are generated. The computer may be a general-purpose computer, a dedicated computer, a computer network, or another programmable device. For example, the computer may be a personal computer, a server, a network device, etc. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted by wired (e.g., coaxial cable, optical fiber, or digital subscriber line (DSL)) or wireless (e.g., infrared, radio, or microwave) from one website, computer, server, or data center to another website, computer, server, or data center. A computer-readable storage medium may be any usable medium accessible by a computer, or a data storage device incorporating one or more usable media, such as a server or data center. Usable media may include magnetic media (e.g., floppy disks, hard disks, or magnetic tapes), optical media (e.g., DVDs), and semiconductor media (e.g., solid-state disks (SSDs)). For example, usable media may include, but are not limited to, any medium capable of storing program code, such as USB flash drives, removable hard disks, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0388] The above description merely outlines a specific implementation of the present application and is not intended to limit the scope of protection. Any modifications or substitutions readily conceivable by a person skilled in the art within the scope of the technical realities disclosed herein shall fall within the scope of protection. Accordingly, the scope of protection of this application shall be subject to the scope of protection set forth in the claims. [Explanation of Symbols]
[0389] 10 Communication device, 11 Transceiver module, 12 Processing module, 13 Memory module, 20 Communication device, 21 Processor, 22 Memory, 23 Transceiver, 30 Chip system, 31 Logic circuit, 32 Input / Output interface, 100 Communication system, 1101 IMS service, 1102 DC, 1103 Modem, 1200 Method, 2000 Method, 2100 Method, 2200 Method
Claims
1. A media negotiation method, A step of receiving first media description information from a first application, wherein the first media description information is a description of a media resource of a first data channel provided by the first application, the first data channel is a channel between a first communication device and a second communication device for transmitting application data generated or consumed by the first application, and the first application operates on the first communication device. A step of transmitting first SDP offer information to the second communication device via an IMS network element, wherein the first SDP offer information includes first media description information. A step of receiving first SDP answer information from the second communication device via the IMS network element, wherein the first SDP answer information includes second media description information, and the second media description information is an answer to the first media description information. The steps include sending the second media description information to the first application and Methods that include...
2. The first SDP offer information further includes a third media description information and / or a fourth media description information, The first SDP answer information further includes a fifth media description information and / or a sixth media description information, The third media description information is a description of media resources for an audio channel for transmitting audio data of the call service of the first communication device, provided by the first communication device; the fourth media description information is a description of media resources for a video channel for transmitting video data of the call service of the first communication device, provided by the first communication device; the fifth media description information is an answer to the fifth media description information; and the sixth media description information is an answer to the sixth media description information. The method according to claim 1.
3. The first SDP offer information and the first SDP answer information each indicate the correspondence between the first application and the first data channel. The method according to claim 1 or 2, further comprising:
4. The first media description information and the second media description information each include a first attribute row and a second attribute row, the first attribute row includes parameter information for the first data channel, the parameter information includes an identifier for the first data channel, and the second attribute row includes an identifier for the first application and the identifier for the first data channel, or The first media description information and the second media description information each include a third attribute row, the third attribute row includes parameter information for the first data channel and an identifier for the first application, the parameter information includes the identifier for the first data channel, The method according to claim 3.
5. The aforementioned method, A step of receiving a first quality of service (QoS) parameter set from the first application, the first QoS parameter set comprising at least one QoS parameter of the first data channel provided by the first application, further comprising: The first SDP offer information further indicates the correspondence between the first QoS parameter set and the first media description information. The method according to any one of claims 1 to 4, wherein the first SDP answer information further indicates a correspondence between a second QoS parameter set and the second media description information, and the second QoS parameter set is the answer of the second communication device to the first QoS parameter set.
6. The first media description information includes the first QoS parameter set, and the second media description information includes the second QoS parameter set. The method according to claim 5.
7. The aforementioned at least one QoS parameter includes packet loss rate and latency. The method according to claim 5 or 6.
8. A step of receiving first instruction information from the first application, wherein the first instruction information indicates that the first data channel uses an independent bearer. The method according to any one of claims 1 to 7, further comprising:
9. The first media description information and the seventh media description information are included in the first m-segment and the second m-segment, respectively, within the first SDP offer information, the seventh media description information is a description information of the media resource of the second data channel, and the second data channel is a channel for transmitting application data generated or consumed by the first or second application between the first communication device and the second communication device, or between the first communication device and the third communication device. The second media description information and the eighth media description information are included in the third m-segment and the fourth m-segment, respectively, within the first SDP answer information, and the eighth media description information is an answer to the seventh media description information. The method according to any one of claims 5 to 8.
10. The first media description information and the seventh media description information are contained in the fifth m-segment within the first SDP offer information, the seventh media description information is a description information of the media resource of the second data channel, and the second data channel is a channel for transmitting application data generated or consumed by the first or second application between the first communication device and the second communication device, or between the first communication device and the third communication device. The second media description information and the eighth media description information are included in the sixth m-segment within the first SDP answer information, and the eighth media description information is an answer to the seventh media description information. The method according to any one of claims 1 to 4.
11. The first communication device is a first terminal device, The second communication device is a second terminal device or server corresponding to the first application. The method according to any one of claims 1 to 10.
12. The aforementioned IMS network element includes a P-CSCF network element. The method according to any one of claims 1 to 11.
13. A media negotiation method, A step of receiving first SDP offer information from a first communication device via an IMS network element, wherein the first SDP offer information includes first media description information, the first media description information is a description information of a media resource for a first data channel, and the first data channel is a channel used for transmitting application data generated or consumed by the first application between the first communication device and a second communication device. A step of transmitting the first media description information to the first application, wherein the first application operates on the second communication device, A step of receiving second media description information from the first application, wherein the second media description information is the first application's answer to the first media description information, A step of transmitting first SDP answer information to the first communication device via the IMS network element, wherein the first SDP answer information includes the second media description information. Methods that further include this.
14. The first SDP offer information further includes a third media description information and / or a fourth media description information, The first SDP answer information further includes a fifth media description information and / or a sixth media description information, The third media description information is a description of media resources for an audio channel for transmitting audio data of the call service of the first communication device, provided by the first communication device; the fourth media description information is a description of media resources for a video channel for transmitting video data of the call service of the first communication device, provided by the first communication device; the fifth media description information is an answer to the fifth media description information; and the sixth media description information is an answer to the sixth media description information. The method according to claim 13.
15. The first SDP offer information and the first SDP answer information each indicate the correspondence between the first application and the first data channel. The method according to claim 13 or 14, further comprising the following:
16. The first media description information and the second media description information each include a first attribute row and a second attribute row, the first attribute row includes parameter information for the first data channel, the parameter information includes an identifier for the first data channel, and the second attribute row includes an identifier for the first application and the identifier for the first data channel, or The first media description information and the second media description information each include a third attribute row, the third attribute row includes parameter information for the first data channel and an identifier for the first application, the parameter information includes the identifier for the first data channel, The method according to claim 15.
17. The first SDP offer information further indicates a correspondence between a first QoS parameter set and the first media description information, wherein the first QoS parameter set includes at least one QoS parameter of the first data channel provided by the first application. The first SDP answer information further indicates the correspondence between the second QoS parameter set and the second media description information, wherein the second QoS parameter set is the answer of the second communication device to the first QoS parameter set. The method according to any one of claims 13 to 16.
18. The first media description information includes the first QoS parameter set, and the second media description information includes the second QoS parameter set. The method according to claim 17.
19. The aforementioned at least one QoS parameter includes packet loss rate and latency. The method according to claim 17 or 18.
20. The first media description information and the seventh media description information are included in the first m-segment and the second m-segment, respectively, within the first SDP offer information, the seventh media description information is a description information of the media resource of the second data channel, and the second data channel is a channel for transmitting application data generated or consumed by the first or second application between the first communication device and the second communication device, or between the first communication device and the third communication device. The second media description information and the eighth media description information are included in the third m-segment and the fourth m-segment, respectively, within the first SDP answer information, and the eighth media description information is an answer to the seventh media description information. The method according to any one of claims 17 to 19.
21. The first media description information and the seventh media description information are contained in the fifth m-segment within the first SDP offer information, the seventh media description information is a description information of the media resource of the second data channel, and the second data channel is a channel for transmitting application data generated or consumed by the first or second application between the first communication device and the second communication device, or between the first communication device and the third communication device. The second media description information and the eighth media description information are included in the sixth m-segment within the first SDP answer information, and the eighth media description information is an answer to the seventh media description information. The method according to any one of claims 13 to 16.
22. The first communication device is a first terminal device, The second communication device is a second terminal device or server corresponding to the first application. The method according to any one of claims 13 to 21.
23. The aforementioned IMS network element includes a P-CSCF network element. The method according to any one of claims 13 to 22.
24. A communication device comprising a module configured to perform the method described in any one of claims 1 to 12, or a module configured to perform the method described in any one of claims 13 to 23.
25. A communication device, A communication device comprising a processor configured to execute a computer program stored in memory to cause the device to perform the method described in any one of claims 1 to 12, or to cause the device to perform the method described in any one of claims 13 to 23.
26. A computer program product, wherein the computer program product includes instructions used to perform the method described in any one of claims 1 to 12, or instructions used to perform the method described in any one of claims 13 to 23.
27. A computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program is executed on a computer, the computer is configured to perform the method described in any one of claims 1 to 12, or the computer is configured to perform the method described in any one of claims 13 to 23.
28. A communication system comprising a first communication device and a second communication device, A communication system in which the first communication device is configured to perform the method described in any one of claims 1 to 12, and the second communication device is configured to perform the method described in any one of claims 13 to 23.