Communication method, device and system

By establishing a data channel in the IMS session and sending request messages to update the data channel application status on the terminal, the problem of business anomalies caused by the data channel application not being in the foreground was solved, thus achieving stable business operation and power saving.

CN121509399APending Publication Date: 2026-02-10HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411082297.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-07
Publication Date
2026-02-10

AI Technical Summary

Technical Problem

During an IMS session, a problem arises where services cannot function properly because one terminal's data channel application is not in the foreground.

Method used

By establishing a data channel between the first device and the first terminal, a request message is sent to update the data channel application status on the first terminal, including starting or changing its status to ensure it runs in the foreground or to save power.

Benefits of technology

This solved the problem of business malfunctions caused by the data channel application not being in the foreground, improving business stability and power consumption efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121509399A_ABST
    Figure CN121509399A_ABST
Patent Text Reader

Abstract

The invention provides a communication method, a communication device and a communication system, relates to the technical field of communication, and is used for solving the problem that a service cannot run normally due to the fact that a data channel application on a terminal of one of two communication parties is not in a foreground in an IMS session process. The scheme comprises the following steps: establishing a first data channel with a first terminal; a first request message is sent through the first data channel, the first request message comprises a first application identifier, and the first request message requests to update the state of a first data channel application corresponding to the first application identifier on the first terminal; the first data channel application is used for data interaction between the first terminal and the second terminal or the DC AS in the IMS session process. According to the scheme, the first request message is sent through the first data channel, so that the first terminal can be requested to update the state of the first data channel application on the first terminal, and the situation that the service in the IMS session cannot run normally is avoided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a communication method, apparatus and system. Background Technology

[0002] The Data Channel (DC) application on the terminal (also known as the Internet Protocol Multimedia Subsystem (IMS) Data Channel application (IMSData ChannelAPP, IMSDC APP)) can transmit various data such as text, images, location, and files through the data channels included in the IMS session to achieve real-time data interaction between the two parties in the call.

[0003] However, the runtime environment of a data channel application typically allows only one data channel application to run; that is, only one data channel application can be in the foreground at a time. Once the terminal has downloaded and used the data channel application, it may choose to close it or switch it to the background. Alternatively, if multiple data channel applications exist in an IMS session, the original data channel application will be closed or switched to the background when a new data channel application starts.

[0004] However, in many scenarios, to avoid frequent signaling negotiations, the data channels corresponding to background or closed data channel applications are not shut down. Therefore, when one terminal initiates a service again, if the data channel application on the other terminal is closed or switched to the background, the service may not function properly. Summary of the Invention

[0005] This application provides a communication method, apparatus, and system to solve the problem that services cannot operate normally because the data channel application on one of the terminals of the two communicating parties is not in the foreground during an IMS session.

[0006] To achieve the above objectives, the embodiments of this application adopt the following technical solutions:

[0007] In a first aspect, embodiments of this application provide a communication method applied to a first device or a chip within the first device. The method includes: the first device establishing a first data channel with a first terminal; the first device sending a first request message through the first data channel with the first terminal; for example, the first request message including a first application identifier; and the first request message requesting an update to the status of a first data channel application corresponding to the first application identifier on the first terminal. The first data channel application is used for data interaction between the first terminal and a second terminal or a data channel (DC) application server (AS) in an Internet Protocol Multimedia Subsystem (IMS) session.

[0008] In some scenarios, the first data channel application on the first terminal may be switched to the background for various reasons. When the first device wants to interact with the first terminal, if the first data channel application on the first terminal is switched to the background, the service between the first device and the first terminal may not function properly. Alternatively, in some scenarios, the first device may wish to change the state of the first data channel application on the first terminal to its desired state. To achieve the above objectives, the method provided in this application embodiment allows the first device to send a first request message to the first terminal through the first data channel. This enables the first device to request the first terminal to update the state of the first data channel application corresponding to the first application identifier on the first terminal through the first request message. For example, the first device can request to start the first data channel application on the first terminal through the first request message, thereby resolving the situation where the service cannot function properly during an IMS session between the first terminal and a second terminal or DC AS because the first data channel application on the first terminal is not running in the foreground.

[0009] In one possible implementation of this application, the first request message requests the startup of the first data channel application on the first terminal. For example, in this case, the first request message can be called a startup request message. This solution enables the first device to request the startup / wake-up of the first data channel application corresponding to the first application identifier on the first terminal through the first data channel, thereby avoiding the situation where the service cannot operate normally in the IMS session because the first data channel application on the first terminal is not running in the foreground.

[0010] In one possible implementation of this application, the first request message further includes a first state, which is the state that the first device expects the first data channel application corresponding to the first application identifier on the first terminal to be updated. This scheme enables the first device to request the first terminal to update the state of the first data channel application on the first terminal to the state expected by the first device via the first data channel. For example, the first state can be a closed state or a background state, which can save power consumption on the device side and prevent the first data channel application on the first terminal from continuously running and consuming the first terminal's power. For example, the first state can be a running state or a foreground state, which can prevent the service from failing to operate normally during an IMS session because the first data channel application on the first terminal is not running in the foreground.

[0011] In one possible implementation of this application, the first device can be a second terminal, which has an IMS session established with the first terminal, and the second terminal also has the aforementioned first data channel application. Alternatively, the first device can be a DC-enabled IMS (Data Channel Multimedia Telephony Service for IMS, DCMTSI) client installed on the second terminal, or the first device can be a network element providing Data Channel Signaling Function (DCSF).

[0012] In one possible implementation of this application, the method provided in this embodiment may further include: a first device receiving a first response message through a first data channel. The first response message includes first information. For example, the first information indicates the status update result of a first data channel application on a first terminal. For example, the status update result includes at least the startup result of the first data channel application. By receiving the first response message, the first device can determine whether the status of the first data channel corresponding to the first application identifier on the first terminal has been successfully updated.

[0013] In one possible implementation of this application, if a first request message requests the startup of a first data channel application on a first terminal, then the first information indicates the startup result of the first data channel application on the first terminal. For example, the startup result can be successful startup or unsuccessful startup. For example, if the startup result is unsuccessful startup, the first response message may also include the reason for the unsuccessful startup.

[0014] In one possible implementation of this application, the first information may indicate whether the status update result of the first data channel application on the first terminal is successful or unsuccessful.

[0015] In one possible implementation of this application, the first information indicates that the first terminal failed to update the status of the first data channel, and the first response message also includes the reason for the failure to update the status of the first data channel. This facilitates the first device in determining the reason why the first terminal failed to update the status of the first data channel on the first terminal.

[0016] In one possible implementation of this application, when a first request message requests the launch of a first data channel application on a first terminal, the first information may indicate whether the launch of the first data channel application on the first terminal was successful or unsuccessful.

[0017] In one possible implementation of this application, the first device is a second terminal, or a DCMTSI client on the second terminal; the establishment of a first data channel with the first terminal provided in the embodiments of this application includes: when either the first terminal or the second terminal creates a second data channel, establishing the first data channel with the first terminal, wherein the second data channel is used to support either the first terminal or the second terminal in obtaining data channel applications; or,

[0018] When the first terminal and the second terminal create a first peer-to-peer (P2P) type third data channel, the first data channel is established with the first terminal. The third data channel is used to transmit data generated by the application running on the first data channel between the first terminal and the second terminal. Specifically, the third data channel is used to transmit interactive data / application data generated by the application running on the first data channel between the first terminal and the second terminal.

[0019] In one possible implementation of this application, the second data channel is a data channel created by either the first terminal or the second terminal through a Session Initiation Protocol (SIP) request (INVITE), update (UPDATE), or re-INVITE request.

[0020] In one possible implementation of this application, the first device is a second terminal. Before the second terminal sends the first request message through the first data channel with the first terminal, the method provided in this application embodiment further includes: the second terminal obtaining a second request message from the first data channel application on the first device through the application programming interface (API) provided by the DCMTSI client. The second request message requests the startup of the first data channel application on the first terminal.

[0021] In one possible implementation of this application, the first device is a DCSF. The method provided in this application embodiment further includes: when the first terminal creates a second data channel, a first data channel is established with the first terminal; the second data channel is used to support the first terminal in obtaining data channel applications; or, when the first terminal creates a second data channel of the first node-to-application (P2A) type between the first terminal and the data channel application server, the DCSF network element establishes the first data channel with the first terminal, and the second data channel is used to transmit data generated by the first data channel application.

[0022] In one possible implementation of this application, before sending the first request message through the first data channel, the method provided in this application embodiment may further include: the DCSF receiving a third request message from the DC AS. The third request message requests the activation of the first data channel application on the first terminal.

[0023] In one possible implementation of this application, after receiving the first response message through the first data channel, the method provided in this application embodiment may further include: the first device outputting the status update result of the first data channel application on the first terminal.

[0024] In one possible implementation of this application, establishing a first data channel with a first terminal includes: a first device receiving a data channel creation request message from the first terminal, the data channel creation request message requesting the creation of the first data channel between the device and the first device, the data channel creation request including media negotiation information of the first data channel to be created; the first device sending a response message to the first terminal, the response message including the media negotiation information of the first data channel accepted by the first device.

[0025] In one possible implementation of this application, establishing a first data channel with a first terminal includes: a first device sending a data channel creation request message to the first terminal. The data channel creation request message requests the creation of the first data channel with the first device, and includes media negotiation information for the requested first data channel; the first device receives a response message from the first terminal, the response message including media information for the first data channel accepted by the first terminal.

[0026] In one possible implementation of this application, the first data channel is used to transmit first request messages from different data channel applications. The first application can be any one of a plurality of different data channel applications.

[0027] Secondly, this application provides a communication method applied to a first terminal or a chip within the first terminal. The method includes: establishing a first data channel between the first terminal and a first device; the first terminal receiving a first request message through the first data channel; wherein the first request message includes a first application identifier; the first request message requesting an update of the state of the first data channel application corresponding to the first application identifier on the first terminal; the first data channel application being used for data exchange between the first terminal and a second terminal or a DC AS during an IMS session; and the first terminal responding to the first request message by updating the state of the first data channel application corresponding to the first application identifier on the first terminal.

[0028] In one possible implementation of this application, after the first terminal updates the state of the first data channel application on the first terminal, the method provided in this embodiment may further include: the first terminal sending a first response message to the first device through the first data channel. The first response message includes first information, which indicates the state update result of the first data channel application on the first terminal.

[0029] In one possible implementation of this application, a first request message requests the launch of a first data channel application on a first terminal. In response to the first request message, the first terminal updates the state of the first data channel application on the first terminal, including: the first terminal launching the first data channel application on the first terminal in response to the first request message. For example, launching the first data channel application on the first terminal if it is not currently running. Or, if the first data channel application on the first terminal is in the foreground, updating its state to foreground.

[0030] In one possible implementation of this application, the first request message is a startup request message, which requests the startup of the first data channel application on the first terminal. In response to the first request message, the first terminal updates the state of the first data channel application on the first terminal, including: If the data channel application on the first terminal is not in the foreground, the first terminal outputs a prompt message to prompt the user to start / decline starting the first data channel application on the first terminal. If the user's instruction to start the first data channel application on the first terminal is detected, then the first data channel application on the first terminal is started. If the user's instruction to decline starting the first data channel application on the first terminal is detected, then the state of the first data channel application on the first terminal remains unchanged. For example, if the first data channel application on the first terminal is in the background, and the user's instruction to decline starting the first data channel application is detected, then the first terminal keeps the first data channel application on the first terminal in the background. This method allows the first terminal to set the state of the first data channel application on the first terminal according to the user's wishes.

[0031] In one possible implementation of this application, the first request message includes a first state. In response to the first request message, the first terminal updates the state of the first data channel application on the first terminal, including: if the first data channel application on the first terminal is not in the first state, the first terminal updates the state of the first data channel application on the first terminal to the first state. Alternatively, if the first data channel application on the first terminal is not in the first state, the first terminal outputs a prompt message to indicate to the user that they agree / decline updating the state of the first data channel application on the first terminal to the first state. If an operation indicating that the user agrees to update the state of the first data channel application on the first terminal to the first state is detected, the state of the first data channel application on the first terminal is updated to the first state. If an operation indicating that the user refuses to update the state of the first data channel application on the first terminal is detected, the state of the first data channel application on the first terminal remains unchanged.

[0032] In one possible implementation of this application, when the first terminal responds to the first request message and starts the first data channel application on the first terminal, the first terminal may also output a prompt message to notify the user that the first data channel application has been started.

[0033] In one possible implementation of this application, when the first terminal responds to the first request message and updates the status of the first data channel application on the first terminal to a first status, the first terminal can also output a prompt message to notify the user that the status of the first data channel application on the first terminal has been updated to the first status. This makes it easier for the user to understand the latest status of the first data channel application.

[0034] Thirdly, this application provides a communication device that can implement the methods in the first aspect or any possible implementation of the first aspect, and therefore can also achieve the beneficial effects of the first aspect or any possible implementation of the first aspect. The communication device can be a first device, or an apparatus that supports the first device in implementing the methods in the first aspect or any possible implementation of the first aspect, such as a chip applied in the first device. The communication device can implement the above methods through software, hardware, or by hardware executing corresponding software.

[0035] As an example, the communication device may include a processing module and a communication module, wherein the communication module is used to perform the receiving / transmitting related steps performed by the first device in the first aspect or any possible implementation of the first aspect described above. The processing module is used to perform the processing related steps performed by the first device in the first aspect or any possible implementation of the first aspect described above.

[0036] For example, when the communication device is a chip or chip system within the first device, the processing module can be a processor, and the communication module can be a communication interface. For example, the communication interface can be an input / output interface, pins, or circuits. The processing module executes instructions stored in the storage unit to enable the first implementation of a method for updating application state in an IMS session as described in the first aspect or any possible implementation of the first aspect. The storage unit can be a storage unit within the chip (e.g., a register, cache, etc.) or a storage unit located outside the chip within the first device (e.g., read-only memory, random access memory, etc.).

[0037] Fourthly, this application provides a communication device that can implement the methods in the second aspect or any possible implementation of the second aspect, and therefore can also achieve the beneficial effects of the second aspect or any possible implementation of the second aspect. The communication device can be a first terminal, or an apparatus that supports the first terminal in implementing the methods in the second aspect or any possible implementation of the second aspect, such as a chip applied in the first terminal. The communication device can implement the above methods through software, hardware, or by hardware executing corresponding software.

[0038] As an example, the communication device may include a processing module and a communication module, wherein the communication module is used to perform the receiving / transmitting related steps performed by the first terminal in the second aspect or any possible implementation thereof. The processing module is used to perform the processing related steps performed by the first terminal in the second aspect or any possible implementation thereof.

[0039] For example, when the communication device is a chip or chip system within the first terminal, the processing module can be a processor, and the communication module can be a communication interface. For example, the communication interface can be an input / output interface, pins, or circuits. The processing unit executes instructions stored in the storage unit to cause the first terminal to implement a method for updating application state in an IMS session as described in the first aspect or any possible implementation of the first aspect. The storage module can be a storage unit within the chip (e.g., a register, cache, etc.) or a storage unit located outside the chip within the terminal (e.g., read-only memory, random access memory, etc.).

[0040] Fifthly, embodiments of this application provide a communication system comprising: a first device and a first terminal. The first device is configured to execute the method for updating application state in an IMS session as described in the first aspect or various possible implementations of the first aspect. The first terminal is configured to execute the method for updating application state in an IMS session as described in the second aspect or various possible implementations of the second aspect.

[0041] For example, the first device can be a second terminal or a DCMTSI client on the second terminal, or the first device can be a network element that provides a Data Channel Signaling Function (DCSF).

[0042] In a sixth aspect, embodiments of this application provide a computer program product including instructions that, when executed on a computer, cause the computer to perform a communication method described in the first aspect or various possible implementations of the first aspect.

[0043] In a seventh aspect, embodiments of this application provide a computer program product including instructions that, when executed on a computer, cause the computer to perform a communication method described in the second aspect or various possible implementations of the second aspect.

[0044] Eighthly, embodiments of this application provide a computer-readable storage medium storing a computer program or instructions that, when executed on a computer, cause the computer to perform a communication method as described in any of the possible implementations of the first aspect. The computer may be a first device.

[0045] Ninthly, embodiments of this application provide a computer-readable storage medium storing a computer program or instructions that, when executed on a computer, cause the computer to perform a method for updating application state in an IMS session as described in any of the possible implementations of the second aspect. The computer may be a first terminal.

[0046] In a tenth aspect, embodiments of this application provide a communication device for implementing various methods in various possible designs of the first aspect or any of the first aspects described above. The communication device can be the first device described above, or a device containing the first device, or a component (e.g., a chip) applied to the first device. The communication device includes modules and units corresponding to the methods described above; these modules and units can be implemented in hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the functions described above. It should be understood that the communication device described in the ninth aspect may further include a bus and a memory, the memory being used to store code and data. Optionally, at least one processor communication interface and the memory are coupled to each other.

[0047] Eleventhly, embodiments of this application provide a communication device for implementing various methods in various possible designs of the second aspect or any of the second aspects described above. The communication device can be the first terminal described above, or a device containing the first terminal, or a component (e.g., a chip) applied in the first terminal. The communication device includes modules and units corresponding to the methods described above; these modules and units can be implemented in hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the functions described above.

[0048] It should be understood that the communication device described in aspect ten or eleven above may further include: a bus and a memory, the memory being used to store code and data. Optionally, at least one processor communication interface and the memory are coupled to each other.

[0049] In a twelfth aspect, embodiments of this application provide a chip including at least one processor, the processor being configured to read and execute a computer program stored in a memory to perform the method in the first aspect or any possible implementation thereof.

[0050] In a thirteenth aspect, embodiments of this application provide a chip including at least one processor, the processor being configured to read and execute a computer program stored in a memory to perform the method in the second aspect or any possible implementation thereof.

[0051] Optionally, the chip also includes a memory, which is connected to the processor via circuitry or wires.

[0052] Alternatively, the chip may also include a communication interface. The communication interface is used to communicate with other modules outside the chip.

[0053] Any of the devices, computer storage media, computer program products, chips, or communication systems provided above are used to execute the corresponding methods provided above. Therefore, the beneficial effects they can achieve can be referred to the beneficial effects of the corresponding solutions in the corresponding methods provided above, and will not be repeated here. Attached Figure Description

[0054] Figure 1 This is a schematic diagram of the data channel between terminals in an IMS session provided in an embodiment of this application;

[0055] Figure 2 This is a schematic diagram of the data channel protocol stack provided in an embodiment of this application;

[0056] Figure 3 This is the data channel workflow provided in the embodiments of this application.

[0057] Figure 4 This is an architecture diagram of a communication system provided in an embodiment of this application;

[0058] Figure 5 A system architecture diagram of the IMSData Channel provided in the embodiments of this application;

[0059] Figure 6 This is a diagram of the DCMTSI client architecture provided in the embodiments of this application;

[0060] Figure 7 A flowchart illustrating a communication method provided in an embodiment of this application;

[0061] Figure 8 This application provides a schematic diagram of a data channel creation process.

[0062] Figure 9 This application provides a schematic diagram illustrating the specific process of launching a data channel application in an IMS session.

[0063] Figure 10 A detailed flowchart illustrating another method for updating the application status of a data channel in an IMS session, provided in an embodiment of this application;

[0064] Figure 11 A detailed flowchart illustrating another method for initiating application state in an IMS session, provided as an embodiment of this application.

[0065] Figure 12 This is a schematic diagram of the structure of a communication device provided in an embodiment of this application;

[0066] Figure 13 This is a schematic diagram of the structure of a communication device provided in an embodiment of this application;

[0067] Figure 14 This is a schematic diagram of the structure of a chip provided in an embodiment of this application. Detailed Implementation

[0068] The technical solutions of the embodiments of this application will be described below with reference to the accompanying drawings. In the description of the embodiments of this application, unless otherwise stated, " / " means "or," for example, A / B can mean A or B; "and / or" in this text is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Furthermore, in the description of the embodiments of this application, "multiple" refers to two or more than two.

[0069] Hereinafter, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this embodiment, unless otherwise stated, "a plurality of" means two or more.

[0070] Furthermore, the terms “comprising” and “having”, and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the steps or units listed, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to such process, method, product, or apparatus.

[0071] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner to facilitate understanding.

[0072] It should be understood that in this application, "at least one (item)" means one or more. "More than one" means two or more. "At least two (items)" means two or three or more. "And / or" is used to describe the relationship between related objects, indicating that there can be three relationships. For example, "A and / or B" can mean: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural.

[0073] The character " / " generally indicates that the preceding and following objects are in an "or" relationship. "At least one of the following" or similar expressions refer to any combination of these items, including any single or multiple items. For example, "at least one of a, b, or c" can be expressed as: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.

[0074] Both "...when" and "if" indicate that a corresponding action will be taken under certain objective circumstances. They are not time limits, nor do they require a judgment action to be taken when the action is taken, nor do they imply any other limitations.

[0075] Before introducing the embodiments of this application, the relevant terms involved in the embodiments of this application are first explained as follows:

[0076] 1. Internet Protocol Multimedia Subsystem (IMS) Session

[0077] IMS is a general network architecture that provides multimedia services over Internet Protocol (IP) networks. An IMS session refers to a session established between people, people and things, or things for multimedia communication, used to transmit multimedia data between the communicating parties, such as data between terminals, and / or data between a terminal and a communication network. An IMS session can be understood as a logical connection between communication devices in multimedia communication; for example, it can be understood as a logical connection between terminals in multimedia communication, capable of transmitting data between terminals; or it can be understood as a logical connection between a terminal and a communication network in multimedia communication, used to transmit data between the terminal and the communication network. In specific applications, IMS sessions can be negotiated (or established) based on the Session Initiation Protocol (SIP) / Session Description Protocol (SDP). It should be understood that an IMS session can also be replaced by a communication session, an IMS communication session, a session or a voice call service session, etc., without limitation.

[0078] Understandably, multimedia communication can correspond to at least one IMS session. Taking multimedia communication between terminal 1 and terminal 2 as an example, this multimedia communication corresponds to one IMS session, such as the IMS session between terminal 1 and terminal 2. Taking multimedia communication between terminal 1, terminal 2, and terminal 3 as an example, this multimedia communication corresponds to one IMS session, such as the IMS session between terminal 1, terminal 2, and terminal 3; or, this multimedia communication corresponds to three IMS sessions, such as the IMS session between terminal 1 and terminal 2, the IMS session between terminal 1 and terminal 3, and the IMS session between terminal 2 and terminal 3.

[0079] The network architecture for 5G new calls is an upgrade based on the existing IMS architecture, designed to support the large-scale development of interactive multimedia services and enable industries / enterprises to access the IMS network efficiently, quickly, and securely. To achieve service innovation in 5G new call scenarios, 3GPP Release 16 introduced a new data channel (DC) in addition to the original audio and video channels in the IMS network, such as... Figure 1 As shown.

[0080] Understandably, to transmit various types of data, channels can be established within an IMS session for transmitting the corresponding data types. For example, based on data type, channels can be divided into media channels and data channels. In some scenarios, media channels can be further divided into audio channels and video channels. Audio channels can be used to transmit voice, video channels can be used to transmit video, and data channels can be used to transmit any data other than voice and video. Of course, data channels can also transmit voice and / or video without limitation.

[0081] For example, such as Figure 1 As shown, Terminal 1 and Terminal 2 can communicate via the IMS network. The IMS session between Terminal 1 and Terminal 2 includes data channels, audio channels, and video channels. It should be understood that... Figure 1 This is merely an example of an IMS session. In a specific application, an IMS session may include a data channel but not an audio or video channel, or an IMS session may include at least one of an audio or video channel, as well as a data channel, without limitation.

[0082] 2. Protocol stack of IMS session

[0083] The protocol stack of an IMS session indicates the sum of media transport protocols applicable to the IMS session and reflects the data transmission process within the session. An IMS session can transmit voice, video, text, and data other than voice, video, and text. Therefore, to match the transmission requirements of different data types, different protocols can be configured for channels of different data types. For example, the protocol stack of an IMS session can be as follows: Figure 2 As shown. In Figure 2 In this architecture, the lowest-level protocol for audio, video, and data channels is IP, and above IP is the User Datagram Protocol (UDP). The protocols above UDP differ for these channels, and will be explained below. For audio or video channels, above UDP is the Real-Time Transport Protocol (RTP) or the RTP Control Protocol (RTCP). RTP can encapsulate voice, video, or text payloads, and above that are conversational multimedia applications. RTCP also runs on conversational multimedia applications. For data channels, above UDP is the DTLS protocol, and above DTLS is SCTP. SCTP can encapsulate information that the data channel can transmit, such as application data or applications. Above application data or applications are conversational multimedia applications.

[0084] Understandable. Figure 2 This is merely an example of the media transport protocol stack for an IMS session. In specific applications, the protocol stack for an IMS session can take other forms. For example, the protocol stack for an IMS session may not include the DTLS protocol.

[0085] 3. Data Channel

[0086] The data channel in this embodiment is also referred to as an IMS data channel, that is, a data channel in IMS that can be used to transmit data based on the Stream Control Transmission Protocol (SCTP); in other words, the data channel is a logical channel or data connection for transmitting data based on SCTP. For example, the data channel can provide users with richer real-time interactive services beyond audio and video calls. For instance, terminals in the same IMS session (such as…) Figure 1Terminal 1 and Terminal 2 in the IMS, through the SIP / Session Description Protocol (SDP) media negotiation process, determine the IP addresses and ports used by both terminals to transmit data, the key information required to establish Datagram Transport Layer Security (DTLS) and Stream Control Transmission Protocol (SCTP) associations, and the description information corresponding to the data channels. This allows them to establish one or more data channels in the IMS session that transmit audio and video in parallel (e.g., ...). Figure 1 The data channels shown, in which Figure 2 This diagram illustrates a data channel protocol stack based on SCTP / DTLS / UDP / IP. Terminal 1 and Terminal 2 can download various applications (i.e., DC Apps) from the network-side DCSF via the data channel and run these applications before, during, or after audio / video calls. By transmitting various types of application data in the data channel, Terminal 1 and Terminal 2 can communicate in ways other than voice or video calls, such as screen sharing, simultaneous translation, location sharing, overlaying AR effects, and even immersive interactions with synchronized auditory, visual, and tactile senses, thereby enhancing the user experience.

[0087] Data channels can provide users with richer real-time interactive services, enabling the transmission of multimedia information such as text, images, and videos before, during, and after a call. This includes, but is not limited to, content captured by the user's device camera, information generated from likes, and information generated from sending red envelopes. Depending on their purpose, data channels can be divided into two types: bootstrap data channels (BDC) and application data channels (ADC).

[0088] BDC: The terminal obtains the application needed for real-time communication through the BDC, namely the data channel application, also known as the IMS Data Channel APP (IMSDC APP). Terminals supporting data channel capabilities can establish a BDC with the call originating network and / or the call terminating network. This depends on the capabilities of each network, including the service subscriptions of both terminals within their respective networks. Hypertext Transfer Protocol (HTTP) can be used to transmit data through the BDC. The stream identifier (ID) of the BDC has a value less than x. For example, x = 1000. Terminal 1 and Terminal 2 can download various applications (i.e., DC Apps) from the network-side DCSF via the data channel and run these applications before, during, or after audio / video calls. By transmitting various types of application data through the data channel, Terminal 1 and Terminal 2 can conduct communication beyond voice or video calls, such as screen sharing, simultaneous translation, location sharing, AR overlay effects, and even immersive interactions with synchronized auditory, visual, and tactile senses to enhance the user experience. Terminals supporting data channel capabilities can establish a BDC with the DCSF of the originating network and / or the DCSF of the terminating network. The specific method depends on whether each network supports data channel capabilities and the service subscription status of both parties' terminal devices on their respective networks. Furthermore, BDC can only transmit data using the Hypertext Transfer Protocol (HTTP), and the stream ID value of BDC is less than 1000.

[0089] ADC: Used to transmit interactive data / application data generated by the IMS data channel application running between the communicating parties. The application logic transmitted in BDC controls the dynamic application data reception / transmission in the ADC. ADC transmission can be between terminals or between a terminal and the network, with the network side providing users with rich, web-based, real-time interactive experience enhancement content. Data can be transmitted through the ADC using any protocol, and the ADC's stream ID value is greater than or equal to x. The ADC is used to transmit interactive data generated by the DC App running on both communicating parties. In P2P scenarios, the ADC is established between the terminal devices of the two parties, and in this case, the ADC is used to transmit interactive data generated by the DC App running on the terminal devices of both parties. In addition, the ADC can transmit data using any protocol, and the ADC's stream ID value is greater than or equal to 1000.

[0090] Based on the relationship between the data channel and audio / video calls, it can be divided into supplementary data channels and independent data channels.

[0091] (1) During an IMS session, when the terminal has an audio or video call with other session participants (which may be another terminal or a network element), there is also a data channel. This data channel can be called an auxiliary data channel or a dependent data channel.

[0092] (2) During an IMS session, when there is only a data channel between the terminal and other session participants, and no traditional voice or video calls, the data channel can be called a standalone data channel or an independent data channel.

[0093] For example, the application data transmitted through the data channel can be interactive application data, or simply interactive data. Interactive application data can be application data used to support interactive operations (such as data or code / scripts used to generate a graphical user interface (GUI) for users to interact with, such as a "like" button or a "red envelope" button), or application data generated by executing the interactive operation (such as control instructions, control signals, or output files generated after the participants in the session perform the interactive operation, such as the number of "likes" or the amount in the "red envelope"), or data collected or stored by the terminal. For example, data collected by the terminal through the input / output (I / O) module, such as images or videos captured by a camera, voice collected by a microphone, text, symbols, or emoticons entered by a keyboard, or data generated by clicking / swiping on a touchscreen.

[0094] For example, the application data transmitted by the data channel can also be communication enhancement application data, or simply communication enhancement data. Communication enhancement data can be data generated based on the content of audio / video calls, such as converting speech in audio / video calls into text, or converting sign language in video calls into text or speech. It can also be data superimposed on audio / video calls, such as AR special effects, or it can be data independent of audio / video calls, such as geolocation data or screen sharing data.

[0095] For example, the application data transmitted through the data channel can also be remote control commands, which can provide users with remote control services or remote Internet of Things (IoT) device connection services. It is understood that in the above situations, the data channel can also be used to transmit remote control commands.

[0096] For example, the application transmitted through the data channel may be an application installation package, executable code, or script. This application may be an interactive enhancement application or a communication enhancement application used to enhance the interactive / communication effects of traditional voice / video calls, or it may be a remote control application / IoT communication application. This application does not impose any restrictions.

[0097] The IMS data channel does not concern itself with the content or format transmitted within the channel. It only requires the communicating parties to agree on the communication format. Through mature internet technologies such as web interfaces or mini-programs, it transmits diverse application content within the data channel, supporting the rapid innovation, deployment, and launch of new 5G voice services.

[0098] 4. Data Channel Application (DC App)

[0099] The data channel application described in this application embodiment is used to transmit additional communication information through a data channel between multiple terminals in the same IMS call service.

[0100] As an example, additional communication information may include at least one of the following: content captured by the user's device camera, information generated by a thumbs-up, information generated by sending a red envelope (digital cash gift), desktop shared content, marks drawn by the user on the screen, text messages entered by the user, image information entered by the user, geolocation information, or video content in a video file, etc. This information may be produced or consumed by either the calling or called terminal device, or it may be produced or consumed by a device connected to either the calling or called terminal device. In this embodiment, the additional communication information may be transmitted (sent or received) through a data channel application on the participating terminals of the IMS session, and processed accordingly (presentation, control, etc.).

[0101] As an example, a data channel application is web content that includes Hypertext Markup Language (HTML), JavaScript, images, Cascading Style Sheets (CSS), describes a graphical user interface (UI), and is capable of implementing interactive business logic.

[0102] Data channel applications are typically downloaded from the network by the call application on the terminal and run during the IMS call, without requiring installation or uninstallation. It is understood that data channel applications can exist as web pages, or as mini-programs / quick apps / light apps, etc., and this application does not limit them in this regard.

[0103] For example, the data channel application involved in the embodiments of this application can be a DC App in a 4G / 5G network. DC App can transmit various data such as text, pictures, location, and files before and after the IMS call is established, enabling communication between the two parties in addition to voice or video calls, which can greatly enhance the experience of both parties in the call.

[0104] In this embodiment, a data channel application can be installed on the terminal. The workflow of the data channel application will be described below:

[0105] The following is combined with Figure 3 The workflow shown briefly introduces the data channel's workflow, using UE A and UE B as examples, representing the calling terminal and the called terminal, respectively.

[0106] 1. Developers complete the development of the IMS data channel application through offline processes, and then upload the developed IMS data channel application to the operator's data channel server (DCS).

[0107] 2. DCS stores IMS data channel applications in the Data Channel Application Repository (DCAR).

[0108] 3. When needed, DCS downloads the IMS data channel application from DCAR.

[0109] 4. UE A establishes a BDC with DCS and obtains the required IMS data channel application from DCS through the BDC.

[0110] 5. UE B establishes a BDC with DCS and obtains the required IMS data channel application from DCS through the BDC.

[0111] 6. UE A and UE B establish an ADC for transmitting interactive data of the IMS data channel application.

[0112] For example, a terminal can obtain a DC App from a DCSF via an HTTP process through a BDC, and can update it automatically or interactively at any time. It can then use this DC App to communicate with the peer terminal device, excluding voice or video calls. UE A and UE B are in the same IMS call service. Suppose that during a call with UE B, UE A wants to share its phone screen with UE B to guide B through phone settings. UE A and UE B can first obtain the IMS data channel application for screen sharing, and then run the application to interact with the peer UE in real time.

[0113] 5. Application forms and lifecycle management of data channels

[0114] The following describes the form and lifecycle management of data channel applications:

[0115] According to the GSMA TS.66 IMS Data Channel API Specification, IMS data channel applications can exist in the form of web pages (running in a browser environment, i.e., the UI mode of HTML web pages), or in the form of mini-programs / quick apps / light apps, etc.

[0116] According to W3C regulations, web pages and mini-programs have their own lifecycle management mechanisms.

[0117] Web page lifecycle management is divided into six stages, as shown below.

[0118] Active: The webpage is visible and has input focus.

[0119] Passive: The webpage is visible, but there is no input focus, and it cannot accept input. UI updates (such as animations) are still running. This can only happen when there are multiple windows on the desktop simultaneously.

[0120] Hidden: The webpage is not visible, but it is not frozen. UI updates will no longer be performed.

[0121] Terminated: When a user actively closes the window or navigates to another page within the same window, the current page begins to be unloaded by the browser and cleared from memory. This stage occurs after the Hidden stage; when a user actively leaves the current page, the browser always enters the Hidden stage first, then the Terminated stage. This node causes the webpage to be unloaded; no new tasks will start at this stage, and if the process takes too long, ongoing tasks may be terminated.

[0122] Frozen: If a webpage remains in the hidden state for too long without the user closing it, the browser may freeze the page, putting it into the frozen state. However, it's also possible for a visible page to enter the frozen state if there's no activity for an extended period. In this stage, the webpage is no longer allocated Central Processing Unit (CPU) computing resources. Timers, callback functions, network requests, and Document Object Model (DOM) operations will not execute, but running tasks will complete. Browsers may allow frozen pages to periodically re-enter the hidden state for a short period, briefly allowing a small number of tasks to execute.

[0123] Discarded: If a webpage remains in the Frozen stage for an extended period without being reactivated by the user, it will enter the Discarded stage. This means the browser automatically unloads the webpage, clearing its memory usage. Alternatively, a webpage in the Passive stage may directly enter the Discarded stage if there is prolonged inactivity. Generally, this is forcibly executed by the system without user intervention. No new tasks or JavaScript code can be executed in this stage, as resource constraints usually exist. After a webpage is automatically Discarded by the browser, its tab window remains open. If the user revisits this tab, the browser will resend a request to the server to reload the webpage, returning to the Active stage.

[0124] According to the W3C Mini Program Lifecycle Management Specification white paper, the lifecycle management of Mini Programs is divided into five stages:

[0125] "Launched" indicates that the mini-program has been loaded and launched.

[0126] Shown indicates that the mini-program is in the foreground state. This stage usually occurs after the mini-program enters Launched, or when the mini-program switches from the background to the foreground.

[0127] Hidden indicates that the mini-program is in the background.

[0128] An error indicates that the mini-program is in an error state.

[0129] Unloaded means the mini-program has been uninstalled.

[0130] The runtime environment of a data channel application on a terminal typically only allows one data channel application to run at a time; that is, only one data channel application can be in the foreground at a time. After a user downloads and uses a data channel application, they may choose to close the application or switch it to the background. Alternatively, if multiple data channel applications exist in an IMS session, the original data channel application will be closed or switched to the background when a new data channel application starts.

[0131] For real-time interactive data channel applications of the user-to-user (P2P) type, such as screen sharing or AR annotation, both parties in the call must have their data channel applications in the foreground simultaneously in order to function properly.

[0132] For user-to-application (P2A) type services, such as real-time translation, the service cannot function properly if the data channel application is not started when the server sends the real-time translation results to the terminal.

[0133] Normally, to avoid frequent signaling negotiations, data channels corresponding to background or closed data channel applications are not shut down. Therefore, when a terminal initiates a service again, it will not initiate media renegotiation to notify the peer UE that the service has started. In this case, if the data channel application on the peer UE is not in the foreground, the service may not function properly. Alternatively, when the server initiates a service, if the data channel application on the UE is not in the foreground, the service will not function properly.

[0134] Based on this, the present application provides a communication method in which a first data channel exists between the server or one terminal and another terminal. When the server or one terminal initiates a service, it can request the other terminal to wake up the first data channel application on the terminal or update the status of the first data channel application on the terminal to a specified status through the first data channel. This can avoid the situation where the service cannot run normally due to the lifecycle management of the first data channel application during the IMS session.

[0135] The technical solution provided in this application can be applied to various communication systems, such as: 5th generation (5G) communication systems (or new radio (NR) systems), 4th generation (4G) communication systems (or long term evolution (LTE) systems), LTE frequency division duplex (FDD) systems, and LTE time division duplex (TDD) systems. The technical solution provided in this application can also be applied to future communication systems, such as 6th generation (6G) mobile communication systems.

[0136] like Figure 4 As shown, Figure 4 Figure (a) is an architecture diagram of a communication system provided in an embodiment of this application. The system includes a terminal 100 and a terminal 200. Terminal 100 and terminal 200 communicate through an IP Multimedia Subsystem (IMS) network. For example, terminal 100 and terminal 200 can establish an IMS session. That is, terminal 100 and terminal 200 are two devices in the same IMS session. An IMS session can also be called an IMS call or IMS call, etc.

[0137] The IMS session includes a first data channel between terminal 100 and terminal 200. IMS data channel application A can be installed on terminal 100 and terminal 200. For ease of description, this application may simply refer to IMS data channel application A as: Data Channel Application A.

[0138] For example, either terminal 100 or terminal 200 (which can be referred to as the calling party) can initiate an IMS session establishment request (e.g., an initial invite request message) to the other terminal (which can be referred to as the called party) through the IMS network to request the establishment of an IMS session between terminal 100 and terminal 200. The called party can send a session establishment response to the calling party through the IMS network to complete the establishment of the call between terminal 100 and terminal 200.

[0139] For example, the first data channel between terminal 100 and terminal 200 can also be called the coordination data channel (CDC). Of course, the first data channel between terminal 100 and terminal 200 can also be the BDC between terminal 100 and terminal 200.

[0140] The first data channel between terminal 100 and terminal 200 is used for terminal 100 and terminal 200 to request each other to change the application state of the data channel. For example, terminal 100 can send a first request message to terminal 200 via CDC. This first request message requests terminal 200 to start / wake up data channel application A on terminal 200. Alternatively, the first request message requests that the state of data channel application A on terminal 200 be updated to a first state. For example, the first state can be an started state or a stopped state; this embodiment does not limit this.

[0141] It is understood that data channel application A on terminal 100 is any one of the multiple data channel applications installed on terminal 100. Similarly, data channel application A on terminal 200 is any one of the multiple data channel applications installed on terminal 200.

[0142] The first data channel between terminal 100 and terminal 200 can be established for the terminal, or it can be a data channel shared by different data channel applications on terminal 100 or terminal 200. That is, the CDC is used to transmit start request messages or status update request messages of different data channel applications on terminal 100 or terminal 200.

[0143] As an example, such as Figure 4 As shown in (a), optionally, in addition to establishing a CDC, terminals 100 and 200 can also establish an ADC in an IMS session. The ADC established between terminals 100 and 200 is used to transmit interactive data of the IMS data channel application A.

[0144] Optionally, either terminal 100 or terminal 200 can also establish a BDC with the DCS in an IMS session. The BDC of terminal 100 is used to support terminal 100 in obtaining the required IMS data channel application from the DCS, such as data channel application A. The BDC of terminal 200 is also used to support terminal 200 in obtaining the required IMS data channel application from the DCS, such as data channel application A.

[0145] As an example, the data channel application A installed on terminal 100 and terminal 200 can be either a P2P type data channel application or a P2A type data channel application.

[0146] P2P applications are applications that allow users to directly share and exchange data with each other, rather than through a centralized server. For example, P2P-type real-time interactive data channel applications could include screen sharing or AR annotation.

[0147] P2A (Person to Application) type applications refer to a communication model where nodes directly access applications via network connections. In this model, nodes do not require a "man-in-the-middle" and communicate directly with the application, thus achieving fast and efficient information transmission. For example, P2A data channel applications could include real-time translation.

[0148] As an example, such as Figure 4 The system shown in (a) may further include: DCS300. Terminal 100 and Terminal 200 may establish a BDC with DCS300 and obtain the required IMS data channel application, such as data channel application A, from DCS300 through the BDC.

[0149] For example, terminal 100 and terminal 200 are in the same IMS session. Suppose that when terminal 100 and terminal 200 are making a call using the IMS session, the user of terminal 100 wants to share their mobile phone screen with terminal 200 to guide terminal 200 in setting up their mobile phone. Then, terminal 100 and terminal 200 can first obtain IMS data channel application A for screen sharing, and then run IMS data channel application A to interact with the other terminal in real time.

[0150] For example, during a call between terminal 100 and terminal 200, terminal 100 needs to translate the speech of terminal 200 into text or other languages. Terminal 100 first needs to obtain IMS data channel application A for real-time translation. After receiving the audio information from terminal 200, the IMS network translates it into text or other languages ​​and then displays it on the terminal screen or plays it aloud via IMS data channel application A.

[0151] Figure 4 Figure (b) is an architecture diagram of a communication system provided in an embodiment of this application. The structure includes a terminal 400 and a Data Channel Signaling Function (DCSF) 500. The terminal 400 and the DCSF 500 communicate through an IP Multimedia Subsystem (IMS) network.

[0152] A first data channel is established between terminal 400 and DCSF500. Terminal 400 is equipped with IMS data channel application A. DCSF500 provides data channel signaling control functions.

[0153] DCSF500 can send a first request message to terminal 400 through the first data channel, wherein the first request message requests to wake up / start data channel application A on terminal 400.

[0154] like Figure 4 As shown in (b), optionally, the system may also include: a Data Channel Application Server (DC AS) 600 for providing data channel service logic. An IMS session exists between the terminal 400 and the DC AS 600. An ADC is established between the terminal 400 and the DC AS 600.

[0155] As an example, in a P2A scenario, DC AS 600 will call the service provided by DCSF500 to request the wake-up of data channel application A installed on terminal 400.

[0156] The network architecture described above for the embodiments of this application is merely an example. The network architecture applicable to the embodiments of this application is not limited to this. Any network architecture capable of implementing the functions of the aforementioned network elements is applicable to the embodiments of this application. That is, the network architecture and service scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application and do not constitute a limitation on the technical solutions provided by the embodiments of this application. Those skilled in the art will understand that with the evolution of network architecture and the emergence of new service scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems. It is also understood that the network elements or devices listed in the above network architecture are merely illustrative examples. The network architecture applicable to this application may also include other network elements or devices, and this application does not limit them. It is also understood that the naming of the aforementioned network elements or devices is only defined to facilitate the differentiation of different functions and should not constitute any limitation on this application. This application does not exclude the possibility of using other names in 4G networks, 5G networks, and other future networks. For example, in 6G networks, some or all of the aforementioned network elements may use the terminology from 4G / 5G, or may use other names, etc.

[0157] A terminal can be any electronic device with voice communication capabilities. For example, a terminal is a user equipment (UE). A UE can be any device capable of accessing a network, and can also be referred to as a terminal equipment, terminal device, access terminal, user unit, user station, mobile station, mobile station (MS), mobile terminal (MT), remote station, remote terminal, mobile device, user terminal, terminal, wireless communication equipment, user agent, or user device, etc. A UE can be a device that provides voice / data connectivity to a user, such as a handheld device or vehicle-mounted device with wireless connectivity. Currently, examples of terminals include: mobile phones, tablets, computers with wireless transceiver capabilities (such as laptops and PDAs), mobile internet devices (MIDs), virtual reality (VR) devices, AR devices, wireless terminals in industrial control, wireless terminals in self-driving vehicles, wireless terminals in remote medical care, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, cellular phones, cordless phones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDAs), handheld devices with wireless communication capabilities, computing devices or other processing devices connected to a wireless modem, in-vehicle devices, wearable devices, terminal devices in 4G / 5G networks, or future public land mobile communication networks. Terminal devices in a network (PLMN), etc.

[0158] It should be understood that the terminal in the embodiments of this application can also be a terminal in various vertical industry application fields such as Internet of Things terminal devices, ports, smart factories, railway transportation, logistics, drones, and autonomous vehicles. For example, mobile robots, automated guided vehicles (AGVs), autonomous vehicles, control equipment and sensors on trains, and control equipment and sensors deployed in factories.

[0159] Furthermore, terminals can also be part of Internet of Things (IoT) systems. IoT is a crucial component of future information technology development, its main technological characteristic being the connection of objects to networks via communication technologies, thereby achieving intelligent networks for human-machine and object-to-object interconnection. IoT technology can achieve massive connectivity, deep coverage, and low power consumption through technologies such as narrowband (NB). Additionally, terminals can include smart printers, train detectors, etc., whose main functions include collecting data (in some terminal devices), receiving control information and downlink data from network devices, and transmitting uplink data to network devices by sending electromagnetic waves. Optionally, terminals can act as base stations. For example, user equipment can act as a dispatching entity, providing sidelink signals between user equipment in vehicle-to-everything (V2X) or device-to-device (D2D) systems. For instance, cellular phones and cars communicate with each other using sidelink signals. Cellular phones and smart home devices can communicate without relying on base station relay signals.

[0160] As an example, such as Figure 5 As shown Figure 4 The system architecture shown in this application embodiment is an IMS network that can be a collection of multiple devices capable of processing voice and multimedia services, or it can be understood as a collection of multiple servers capable of processing audio, video, and multimedia services. The IMS network may include one or more network devices, such as a call session control function (CSCF) network element, an IMS access media gateway (AGW), a data channel signaling function (DCSF) network element, a data channel media function (DCMF) network element, a home subscriber server (HSS), etc. Figure 5As shown, the IMS network system architecture includes: Terminal A and Terminal B, Proxy-Call Session Control Function (P-CSCF) network element, IMS-Access Media Gateway (AGW), Media Function (MF), Remote IMS, Interrogating-Call Session Control Function (I-CSCF), Serving-Call Session Control Function (S-CSCF), I-CSCF and S-CSCF (which can be referred to as I / S-CSCF), IMS Application Server (AS), IMS Home Subscriber Server (HSS), DCSF, Network Exposure Function (NEF) entity, and DC AS. The UE is connected to the Proxy-Call Session Control Function (P-CSCF), and the P-CSCF is connected to the IMS-AGW. The IMS-AGW connects to the MF and the Remote IMS. The MF connects to the IMS AS, DC AS, and DCSF. The DCSF is also connected to the IMS HSS, which in turn is connected to the I / S-CSCF and the IMS AS.

[0161] exist Figure 5 In this context, Terminal A and Terminal B can communicate through the IMS network, which serves as both the call originating network and the call terminating network. Either Terminal A or Terminal B can be the calling terminal, and the other the called terminal. For example, Terminal A can be the calling terminal and Terminal B the called terminal, or Terminal A can be the called terminal and Terminal B the calling terminal. The IMS network includes a Data Channel Application Server (DC AS), a NEF entity and DCS connected to the DC AS, an IMS entity and IMS AS connected to the DCS, a Call Session Control Function (CSCF) entity connected to the IMS AS and IMS HSS entity, and an IMSAGW connected to the CSCF entity.

[0162] The DCS may include a DCSF entity and an MF entity. Optionally, the DCS may also include a data channel application repository (DCAR) entity. Figure 5 This diagram illustrates that DCSF and DCAR are deployed on the same entity, while MF is deployed on a separate entity. In practical applications, the deployment method of DCSF, DCAR, and MF is not limited. For example, DCSF, DCAR, and MF can be deployed on different entities, or at least two of DCSF, DCAR, and MF can be deployed on the same entity.

[0163] The CSCF entity is a functional entity within IMS. It is primarily responsible for signaling control during multimedia call sessions. It manages IMS user authentication, IMS bearer plane quality of service (QoS), control of SIP sessions in cooperation with other network elements, and service negotiation and resource allocation. Depending on their function, CSCF entities can be categorized into proxy CSCF (P-CSCF) entities, interrogating CSCF (I-CSCF) entities, and serving CSCF (S-CSCF) entities. Figure 5 This diagram illustrates that the I-CSCF and S-CSCF are deployed on the same entity, while the P-CSCF is deployed on a separate entity. In practical applications, the deployment methods of the I-CSCF, S-CSCF, and P-CSCF are not limited. For example, the I-CSCF, S-CSCF, and P-CSCF can be deployed on different entities, or at least two of the I-CSCF, S-CSCF, and P-CSCF can be deployed on the same entity.

[0164] Understandably, communication systems can be applied to Figure 5 In the communication scenario shown, for example, terminal 100 is terminal A, and terminal 200 is terminal B. Terminal A and terminal B can negotiate the status of the data channel application on terminal A and terminal B through CDC. Alternatively, terminal 400 and IMS AS (or DCSF entity) can negotiate the status of the data channel application on terminal 400.

[0165] and Figure 3Corresponding to the flowchart, the DCS can include a Data Channel Signaling Function (DCSF) entity and a Media Function (MF) entity. Optionally, the DCS can also include a Data Channel Application Repository (DCAR) entity. The diagram above shows that DCSF and DCAR are deployed on the same entity, while MF is deployed on a separate entity. In specific applications, there are no restrictions on the deployment method of DCSF, DCAR, and MF. For example, DCSF, DCAR, and MF can be deployed on different entities, or at least two of DCSF, DCAR, and MF can be deployed on the same entity.

[0166] Additionally, it should be noted that BDC is the connection established between the UE and the DCSF, while ADC can be a P2A type connection established between the UE and the DC AS, or a P2P type connection established between the UEs.

[0167] In the 3GPP TS26.114 standard, the IMS multimedia telephony service natively provided by the terminal is called MTSIclient (Multimedia Telephony Service for IMS), and the MTSI client that supports DC is called DCMTSIclient (Data Channel Multimedia Telephony Service for IMS). The architecture of the DCMTSI client is as follows: Figure 6 As shown:

[0168] exist Figure 6 In the DCMTSI client, there are packet-based network interfaces and connected to them an audio decoder, a video decoder, a text media for processing downlink data (hereinafter referred to as text media 1), a data channel module for processing downlink data (hereinafter referred to as data channel module 1), a session creation and control module, a data channel module for processing uplink data (hereinafter referred to as data channel module 2), an audio encoder, a video encoder, and a text media for processing uplink data (hereinafter referred to as text media 2). The packet-based network interface can... Figure 2 The protocol stack implementation in [the context].

[0169] The packet-based network interface can communicate with the 3GPP network using 3GPP L2 protocols for media transmission. 3GPP L2 protocols include the Packet Data Convergence Protocol (PDCP) or the Service Data Adaptation Protocol (SDAP). For example, a DCMTSI client can receive media data from the network side or send media data to the network side through the packet-based network interface.

[0170] Understandably, the audio encoder encodes the sound captured by the microphone and sends the encoded audio through a packet-based network interface to another DCMTSI client. Upon receiving the encoded audio, the other DCMTSI client can decode it using an audio decoder and play it through a speaker. Similarly, the video encoder encodes images captured by the camera and sends the encoded images through a packet-based network interface to another DCMTSI client. Upon receiving the encoded images, the other DCMTSI client can decode them using a video decoder and render them on a display. Text media 2 can capture characters entered on the keyboard or drawn on the screen and send this character information through a packet-based network interface to another DCMTSI client. Upon receiving this character information, the other DCMTSI client can render it on a display in real time. Furthermore, the encoded audio, encoded images, and character information mentioned above can be sent through a packet-based network interface after activation. Activation is an operation performed on pre-activated users, bringing them into a normal state and allowing them to begin using the services provided by the operator.

[0171] Understandably, the audio decoder is used to decode audio data received through the packet-based network interface, and the decoded audio can be played through speakers. The video decoder is used to decode images received through the packet-based network interface and render the images on the display. Text Media 1 is used to process character information received through the packet-based network interface, and the processed characters can be rendered on the display in real time. It should be understood that the decoded audio, decoded images, and processed characters can be synchronized before being played or displayed.

[0172] Understandably, other data related to multimedia telephony sessions used for real-time interaction does not require any codecs and can be generated or consumed by the DCMTSI client. For example, this data can be processed by data channel module 2 and sent via a packet-based network interface, or it can be controlled by data channel module 1 to play corresponding sounds through a speaker, display corresponding images on a monitor, or present corresponding effects on a user interface. Furthermore, the user interface can receive interactive data through the downlink data channel, interact with the web interface and related scripts, and needs to be synchronized with the voice, video, and text data received by the user to handle data channel I / O and data formatting.

[0173] It is understood that the DCMTSI Client includes a data channel application runtime environment, a terminal SIP protocol implementation, and a terminal DC protocol stack implementation. The terminal SIP protocol implementation and the terminal DC protocol stack implementation can be implemented by an operating system (OS) or a chip module, while the data channel application runtime environment can be implemented by the OS or through integration with a third-party SDK. The data channel application runtime environment provides APIs to the data channel application, which uses these APIs to create DCs and send data through them. The GSMA IMSDCAS (IMS Data Channel API Specification) working group is defining the DCMTSI Client API specification TS.66 for data channel applications.

[0174] In this application embodiment, the specific structure of the execution subject of a communication method is not particularly limited, as long as communication can be performed according to the communication method of this application embodiment by running a program that records the code of a communication method of this application embodiment. For example, the execution subject of the communication method provided in this application embodiment may be a functional module in a first device that can call and execute a program, or a communication device applied in the first device, such as a chip, chip system, integrated circuit, etc. These chips, chip systems, and integrated circuits may be located inside the first device or may be independent of the first device, and this application embodiment does not impose any restrictions. The execution subject of the communication method provided in this application embodiment may be a functional module in a first terminal that can call and execute a program, or a communication device applied in the first terminal, such as a chip, chip system, integrated circuit, etc. These chips, chip systems, and integrated circuits may be located inside the first terminal or may be independent of the first terminal, and this application embodiment does not impose any restrictions. The following embodiments use a first device and a first terminal as examples to describe the execution subjects of a communication method. Unless otherwise specified, the solutions of the following embodiments can be combined.

[0175] like Figure 7 As shown, Figure 7 This is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes:

[0176] Step 701: Establish a first data channel between the first device and the first terminal.

[0177] As an example, the first data channel can also be referred to as CDC. The first data channel is used to transmit the first request message. The first request message can be a request message to start the data channel application or a status update request message to update the state of the data channel application.

[0178] As an example, both the first terminal and the first device are network elements in the IMS network. In a P2P scenario, the first device can be a second terminal or a DCMTSI Client on the second terminal. For example, combined with... Figure 4 The first device can be Figure 4 In (a) of the above, terminal 100, the first terminal can Figure 4 Terminal 200 in (a) of the text.

[0179] It is understandable that an IMS session can be established between the first terminal and the first device within the IMS network. Taking the first device as the second terminal as an example, the data channel creation request for the first data channel can be initiated by either the first device or the first terminal that initiates the IMS session establishment request. For instance, either the first terminal or the second terminal can initiate an IMS session establishment request to the other terminal to request the establishment of an IMS session. Assuming the first terminal is the one initiating the IMS session establishment request, it can also initiate a data channel creation request to the second terminal to establish the first data channel.

[0180] Optionally, the IMS session may also include an ADC established between the first terminal and the second terminal. Either the first terminal or the second terminal may initiate a request message to the other terminal to establish an ADC, thereby requesting the establishment of an ADC with the peer terminal. Assuming that the first terminal is the party initiating the request message to establish an ADC, the first terminal may also initiate a data channel creation request to the second terminal to establish a first data channel.

[0181] Optionally, the IMS session may also include a BDC established between the first terminal and the DCS, and a BDC established between the second terminal and the DCS. Therefore, when either the first terminal or the second terminal initiates a request message to the DCS to establish a BDC, it may also initiate a data channel creation request to the other terminal to establish a first data channel.

[0182] As an example, the first data channel can be closed when the IMS call between the first device and the first terminal ends.

[0183] As an example, the first data channel can be indicated by a streamID or specified by a specific APP ID. For example, the streamID of the first data channel may be different from the stream ID of the BDC or the stream ID of the ADC, so that the data channel created by the terminal can be distinguished as CDC, BDC or ADC by the streamID of the data channel.

[0184] For example, the first terminal includes three data channels in an IMS session: ADC, BDC, and CDC. The stream ID for ADC can be 'a', for BDC it can be 'b', and for CDC it can be 'c'. The first terminal can distinguish the purpose or type of each data channel based on its stream ID. For instance, if a data channel has a stream ID of 'c', the first terminal can determine that the data channel type is CDC and can be used to transmit the first request message. If a data channel has a stream ID of 'b', the first terminal can determine that the data channel type is BDC and can be used to download the data channel application.

[0185] It is worth noting that the value of 'b' can be a specific value or range within the numerical range of the stream ID corresponding to the BDC as defined in the protocol. For example, if the numerical range of the stream ID corresponding to the BDC as defined in the protocol is less than 1000, then 'b' can be 900 or 400 to 900.

[0186] The term 'a' above can be a specific value or range of values ​​within the numerical range of the stream ID corresponding to the ADC as defined in the protocol. Similarly, the term 'c' above can be a specific value or range of values ​​within the stream ID corresponding to the CDC as defined in the protocol.

[0187] The following will describe the timing of establishing a CDC between terminal 100 and terminal 200 in a P2P scenario, with the first terminal being terminal 100 and terminal 200 respectively.

[0188] As an example, when an IMS session is created between terminal 100 and terminal 200, a CDC can be created between terminal 100 and terminal 200.

[0189] For example, if terminal 100 is the party that initiates the establishment of an IMS session, then when terminal 100 requests to establish an IMS session with terminal 200, terminal 100 may also request to establish a first data channel with terminal 200.

[0190] As another example, during the process of establishing a second data channel between either terminal 100 or terminal 200 and DCS, either terminal may also send a request message to the other terminal among terminal 100 and terminal 200 to request the first data channel between terminal 100 and terminal 200.

[0191] The second data channel is a data channel established between either terminal 100 or terminal 200 and the DCS, also known as BDC, which is used to support terminal 100 or terminal 200 to obtain data channel applications used in real-time communication from the DCS.

[0192] For example, the second data channel can be called BDC. For example, when terminal 100 establishes BDC with DCS, it can also establish CDC with terminal 200.

[0193] For example, the second data channel can be a BDC created by either terminal 100 or terminal 200 based on a SIPre-INVITE request and DCS.

[0194] As another example, when the first P2P type third data channel is created between terminal 100 and terminal 200, terminal 100 and terminal 200 can also create a CDC in the IMS session.

[0195] The third data channel, also known as the ADC, is used to transmit interactive data / application data generated by the data channel application running on both terminal 100 and terminal 200.

[0196] For example, if terminal 200 is the party that initiates the creation of the first P2P type third data channel with terminal 100, then terminal 200 can also initiate a request to create a CDC with terminal 100. Alternatively, when terminal 100 receives the request from terminal 200 to create the first P2P type ADC with terminal 100, it can also initiate a request to terminal 200 to create a CDC with terminal 100.

[0197] It is worth noting that in the above P2P scenario, the timing of the creation of the first data channel between the first terminal and the first device is only an example. For the first terminal and the first device, the first data channel can be created at any time before the first request message is transmitted using the first data channel. This application embodiment does not limit this.

[0198] As another example, in a P2A scenario, the first device can be a network element in the IMS network. For instance, the first device could be... Figure 4 In (b) of the DCSF500, the first terminal can be terminal 400.

[0199] As an example, in a P2A scenario, the BDC of terminal 100 can also be used as a CDC, that is, DCSF500 can use the BDC as the first data channel to send the first request message to terminal 100.

[0200] The following will use Terminal 400 as the first terminal and DCSF500 as the first device as an example to describe the timing of establishing CDC between Terminal 400 and DCSF500 in a P2A scenario.

[0201] In one example, when terminal 400 establishes a second data channel with DCS, DCSF establishes a coordination data channel CDC with terminal 400. In other words, CDC establishes a data channel with DCSF when creating the second data channel for terminal 400.

[0202] The second data channel is a data channel created between the terminal 400 and the DCS, also known as BDC. It is used to support the terminal 400 in obtaining the application used in real-time communication from the DCS, i.e., the data channel application.

[0203] As an example, the BDC between terminal 400 and DCS in this embodiment can also be used as CDC. In this case, DCS can send a first request message to terminal 400 via the BDC.

[0204] Another example is when terminal 400 creates the first P2A type third data channel with DC AS, terminal 400 and DCSF create a coordinated data channel CDC. In other words, the data channel established with DCSF is the first P2P type third data channel created by CDC between terminal 400 and DC AS.

[0205] The third data channel is used to transmit interactive data / application data generated by the data channel application. For example, for P2A (Person to Application) type services, such as real-time translation, terminal 400 can query the real-time translation result from DC AS through the third data channel, and correspondingly, DC AS can send the real-time translation result back to terminal 400 through the third data channel.

[0206] For example, if terminal 400 initiates the establishment of the first P2A type ADC with DC AS, then terminal 400 can also send a request to DCSF to create CDC.

[0207] It is worth noting that in the above P2A scenario, the timing of the creation of the first data channel between the first terminal and the first device is only an example. For the first terminal and the first device, the first data channel can be created at any time before the first request message is transmitted using the first data channel. This application embodiment does not limit this.

[0208] The process for establishing a first data channel between the first device and the first terminal in this embodiment can be referred to as follows: Figure 8 The process is shown below.

[0209] As an example, a CDC can be established between the first terminal and the first device in the following manner:

[0210] Method 1, taking the first terminal as the initiator of the data channel creation request and the second terminal as the receiver of the data channel creation request as an example, such as... Figure 8 As shown.

[0211] Step 1: The first terminal sends a data channel creation request to the second terminal. Correspondingly, the second terminal receives the data channel creation request.

[0212] The data channel creation request includes an SDP proposal (SDPOffer). The SDP proposal (SDPOffer) contains media negotiation information for the data channel. The following attribute line indicates that the data channel is a CDC (Central Data Center).

[0213] a = dcmap:z subprotocol = "http", where z represents the streamID and the subprotocol parameter indicates the subprotocol used on this data channel. Here, it is assumed that the data channel with streamID z is CDC. It is understood that the streamIDs of both ADC and BDC do not include z.

[0214] Alternatively, a = 3gpp-req-app:"cdc"; l-UE, where cdc represents the APP ID of the CDC, l represents the stream ID of the data channel, and UE indicates that the established CDC is a P2P DC. It is understandable that the stream IDs of both the ADC and BDC do not include l.

[0215] For example, a data channel creation request can be an INVITE / re-INVITE / UPDATE request to create a session (INVITE) or modify a session (re-INVITE / UDPATE).

[0216] The aforementioned INVITE / re-INVITE / UPDATE requests are forwarded to the second terminal by the IMS network (e.g., IMS network 1 and IMS network 2). IMS network 1 is the IMS network corresponding to the first terminal, and IMS network 2 is the IMS network corresponding to the second terminal.

[0217] Step 2: The second terminal returns a response message to the first terminal. Correspondingly, the first terminal receives the response message from the second terminal. This response message carries an SDP Answer, which includes the data channel media information received by the second terminal. This response message is forwarded to the first terminal by the IMS network.

[0218] For example, the response message can be 18x or 200 OK.

[0219] Method 2: The first terminal initiates the creation of CDC, and DCSF is the receiver. For example, DCSF is a network element of the IMS network.

[0220] Step 1: The first terminal sends a data channel creation request to the DCSF, and the DCSF receives the request. The SDP proposal (SDPOffer) in the data channel creation request includes media negotiation information for the data channel. This data channel can be identified as a CDC through the following attribute lines. For example, the media negotiation information can be descriptive information used by the terminal to establish the CDC, describing the IP address, port information, TLS ID and certificate, QoS requirements, etc., used by the terminal to connect to the CDC.

[0221] a = dcmap:z subprotocol = "http", where z represents the streamID and the subprotocol parameter represents the subprotocol used on this DC. Here, it is assumed that the data channel with streamID z is CDC. z can be a specific value or a range, which is not limited in this embodiment.

[0222] Alternatively, a = 3gpp-req-app:"cdc"; "q" - Server, where cdc represents the CDC's APP ID, "q" represents the stream ID of the data channel, and Server indicates that the established CDC is a P2A DC.

[0223] For example, a data channel creation request can be an INVITE / re-INVITE / UPDATE request to create a session (INVITE) or modify a session (re-INVITE / UDPATE).

[0224] Step 2: The DCSF returns a response message to the first terminal. Accordingly, the first terminal receives the response message from the DCSF. This response message carries an SDP Answer, including the CDC media information received by the DCSF. This response message is forwarded to the first terminal by the IMS network.

[0225] The response message instructs the DCSF to accept the establishment of the first data channel.

[0226] For example, the response message can be 18x or 200 OK.

[0227] Step 702: The first device sends a first request message through the first data channel. Correspondingly, the first terminal receives the first request message from the first device through the first data channel.

[0228] For example, the first request message carries a first application identifier. The first request message requests an update to the state of the first data channel application on the first terminal corresponding to the first application identifier. The first terminal uses the first application identifier to determine which data channel application on the first terminal is requesting an update on. For example, the first application identifier is the APP ID of the first data channel application. The first data channel application is used for data interaction between the first terminal and the second terminal or the data channel application server during an Internet Protocol Multimedia Subsystem (IMS) session.

[0229] For example, the first request message can request the first terminal to launch the first data channel application identified by the first application identifier on the first terminal, or it can be described as: the first request message requests to update the state of the first data channel application on the first terminal to the launched state, that is, the first request message requests to launch the first data channel application on the first terminal. For example, the first request message can be a launch request message (OpenRemoteApp(APP ID)). It can be understood that launching the first data channel application on the first terminal can also be referred to as switching the first data channel application on the first terminal to the shown state.

[0230] For example, the first request message can request that the status of the first data channel application on the first terminal be updated to a first status. The first request message includes the first status and the APP ID. For example, the first request message can be a status update request message. For example, the first request message can be changeRemoteAppStatus(APP ID, status). The first status can be any of the following: started, foreground, background, or closed; this application embodiment does not limit this. Here, status indicates the first status.

[0231] For example, the first request message could also request that the status of the first data channel application on the first terminal be updated to the background state, or it could request that the first data channel application on the first terminal be closed. For instance, for P2P-type real-time interactive data channel applications such as screen sharing or AR annotation, the data channel applications of both terminals in the call must be in the foreground simultaneously for the data channel applications to function correctly. Using the first device as the second terminal, the second terminal can send a first request message to the first terminal. This first request message requests the first terminal to start the first data channel application on the first terminal.

[0232] For P2A (Person to Application) type services, such as real-time translation, taking DCSF as the first device as an example, the first terminal can request DCAS to provide real-time translation results. In one scenario, before DCAS sends the real-time translation results to the first terminal, DCAS can trigger DCSF to send a first request message to the first terminal to request the startup of the first data channel application on the first terminal. In another scenario, if the first data channel application on the first terminal is not started when DCAS sends the real-time translation results to the first terminal, the service cannot operate normally. In this case, DCAS can trigger DCSF to send a first request message to the first terminal to request the startup of the first data channel application on the first terminal.

[0233] As an example, the first request message may carry first indication information. In a scenario where the first device wants to wake up the first data channel application on the first terminal, the first indication information may request to start the first data channel application on the first terminal. In some scenarios, if the first device needs to adjust the first data channel application on the first terminal to a specific state, such as a first state, the first indication information may instruct the first data channel application on the first terminal to be updated to the first state. For example, the first indication information may instruct the first data channel application on the first terminal to be updated to the background state.

[0234] For example, the first request message can be an application-layer message. Application-layer messages can use application-layer protocols. For example, the application-layer protocol could be HTTP. The first request message could be `OpenRemoteApp(APP ID)` or `changeRemoteAppStatus(APP ID, status)`, or it could be transmitted directly via JSON.

[0235] Step 703: In response to the first request message, the first terminal updates the status of the first data channel application on the first terminal.

[0236] In some scenarios, the first data channel application on the first terminal may be switched to the background for various reasons. When the first device wants to interact with the first terminal, if the first data channel application on the first terminal is switched to the background, the service between the first device and the first terminal may not function properly. Alternatively, in some scenarios, the first device may want to change the state of the first data channel application on the first terminal to a desired state. To achieve the above objectives, in the communication method provided in this application embodiment, the first device can send a first request message to the first terminal through the first data channel. Since the first request message requests to update the state of the first data channel application on the first terminal, it facilitates the first terminal to update the state of the first data channel application corresponding to the first application identifier on the first terminal. For example, the first request message requests to start the first data channel application on the first terminal to solve the situation where the service cannot function properly during the IMS session between the first terminal and the second terminal or DC AS because the first data channel application on the first terminal is not running in the foreground.

[0237] As an example, in the method provided in this application embodiment, before step 702, the first device does not need to determine the state of the first data channel application on the first terminal. When it is necessary to start the first data channel application on the first terminal, a first request message can be sent on the first data channel to request the start of the first data channel application on the first terminal, or when it is necessary to update the state of the first data channel application on the first terminal, the state of the first data channel application on the first terminal can be updated to the first state. Alternatively, in another example, the method provided in this application embodiment may further include, before step 702: the first device determines that the first data channel application on the first terminal is not started. If the first device determines that the first data channel on the first terminal is not started, then the first device sends a first request message on the first data channel to request the start of the first data channel application on the first terminal. Or, the first device determines the state of the first data channel application on the first terminal. If the state of the first data channel application on the first terminal is not the first state, then the first device sends a first request message on the first data channel to request the update of the state of the first data channel application on the first terminal to the first state.

[0238] As an example, determining that a first data channel application on a first terminal is not started may include the first device sending a query request message to request a query about the status of the first data channel application on the first terminal.

[0239] In one possible implementation of this application, taking a DCSF as the first device as an example, the method provided in this embodiment may further include, before step 701: the DCSF receiving a second request message from a DC AS. The second request message requests the activation of a first data channel application on the first terminal.

[0240] For example, the DC AS calls the service provided by the DCSF to request the DCSF to wake up the first data channel application of the first terminal. For example, the DC AS can call the service provided by the DCSF to request the DCSF to wake up the first data channel application of the first terminal if it is determined that the first data channel application of the first terminal is not started, or before sending services to the first data channel application of the first terminal.

[0241] For example, in some scenarios, when the DC AS sends data from the first data channel application to the first terminal, it typically requires the first data channel application on the first terminal to be in the foreground. If the first data channel application is closed or switched to the background, data transmission will fail. In this scenario, if the DC AS fails to send data from the first data channel application to the first terminal, it can be determined that the first data channel application on the first terminal is closed or switched to the background. Alternatively, if the first data channel application on the first terminal is closed or in the background, the first terminal can send a message to the DC AS via the ADC between the first terminal and the DC AS. This message indicates that the first data channel application on the first terminal is closed or in the background, thereby allowing the first device to determine that the first data channel application on the first terminal is not running.

[0242] In one possible implementation of this application, taking the first device as the second terminal as an example, the method provided in this embodiment may further include, before step 701: the second terminal receives a third request message from a first data channel application on the second terminal. The third request message requests the startup of the first data channel application on the first terminal or requests that the state of the first data channel application on the first terminal be updated to a first state. For example, the DCMTSI client on the second terminal receives the third request message from the first data channel application on the second terminal. For example, the first data channel application on the second terminal can send the third request message through the application programming interface (API) provided by the DCMTSI client on the second terminal.

[0243] In one possible implementation of this application, after step 703, the method provided in this embodiment may further include: the first terminal sending a first response message to the first device through a first data channel. Correspondingly, the first device receives the first response message through the first terminal.

[0244] For example, the first response message includes first information, which indicates the status update result of the first data channel application on the first terminal. This allows the first device to know the updated status of the first data channel application on the first terminal based on the first information.

[0245] For example, if the first request message requests the startup of the first data channel application on the first terminal, and if the first terminal successfully starts the first data channel application on the first terminal in step 703, then the first information indicates that the first terminal has successfully started the first data channel application on the first terminal. If the first terminal fails to start the first data channel application on the first terminal in step 703, then the first information indicates that the first terminal has failed to start the first data channel application on the first terminal.

[0246] For example, if the first request message requests an update to the state of the first data channel application on the first terminal, and if the first terminal successfully updates the first data channel application to the first state in step 703, then the first information indicates that the first terminal has successfully updated the first data channel application to the first state, or is used to indicate the updated state of the first data channel application. If the first terminal fails to update the first data channel application to the first state in step 703, then the first information indicates that the first terminal has failed to update the state of the first data channel application to the first state.

[0247] For example, if the first device is a DCSF (Distributed Data Service Provider), then after the DCSF obtains the first response message, the method provided in this application embodiment can also send a first response message to the DC AS (Distributed Data Service Assurance). This allows the DC AS to know the updated status of the first data channel application on the first terminal. For example, the DC AS can send real-time translation results to the first terminal. Before sending the real-time translation results, the DC AS can request the DCSF to start the first data channel application on the first terminal. Then, the DCSF can send a first request message to the first terminal to request the start of the first data channel application on the first terminal. If the first terminal successfully starts the first data channel, then the first device can send a first response message to the DC AS. After the DC AS determines that the first data channel application on the first terminal is in the started state based on the first response message, it can send the real-time translation results to the first terminal.

[0248] For example, if the first device is a second terminal, then after the second terminal obtains the first response message, the method provided in this application embodiment can also send the first response message to the first data channel application on the second terminal. This makes it easier for the first data channel on the second terminal to know the status of the first data channel application on the first terminal.

[0249] In one possible embodiment of this application, after step 702, the method provided in this application may further include: a first device sending a fourth request message to a first terminal via a first data channel. This fourth request message requests an update to a second state for the first data channel application on the first terminal. For example, if the first request message requests the start of the first data channel application on the first terminal, the second state could be closed or in the background. Alternatively, the first request message may include a first state, but the second state is different from the first state. For example, the first state may be in the foreground, and the second state may be in the background.

[0250] In one possible embodiment of this application, the method provided in this application may further include: a first device outputting a status update result of a first data channel application on a first terminal. This facilitates the user in determining the latest status of the first data channel application on the first terminal based on the status update result of the first data channel application on the first terminal.

[0251] In one possible embodiment of this application, step 703 can be implemented in the following way: in response to the first request message, the first terminal directly updates the status of the first data channel application on the first terminal.

[0252] For example, if the first request message is a start request message, the first terminal responds to the start request message and starts the first data channel application on the first terminal. This makes the state of the first data channel application on the first terminal start.

[0253] It is worth noting that in practice, when the first terminal receives the startup request message, the first data channel application on the first terminal may or may not be in a startup state. Specifically, in response to the startup request message, if the first terminal determines that the first data channel application on the first terminal is not in a startup state, then it will start the first data channel application on the first terminal. When the first terminal determines that the first data channel application on the first terminal is in a startup state, it can directly send first information indicating the startup result of the first data channel application to the first device.

[0254] For example, if the first request message is a status update request message, which includes both the first application identifier and the first status, the first terminal responds to the status update request message by updating the status of the first data channel application on the first terminal to the first status. This allows the first data channel application on the first terminal to be in the running state.

[0255] It is worth noting that in practice, when the first terminal receives the start request message, the state of the first data channel application on the first terminal may or may not be the first state. Specifically, in response to the state update request message, if the first terminal determines that the state of the first data channel application on the first terminal is not the first state, it updates the state of the first data channel application on the first terminal to the first state. If the state of the first data channel application on the first terminal is already in the first state when the first terminal receives the state update request message, then the first terminal can respond to the state update request message by sending a response message to the first device, which indicates that the state of the first data channel application is the first state.

[0256] like Figure 9 As shown, Figure 9 This application provides a flowchart illustrating a method for launching a data channel application in an IMS session. Taking terminal A as an example and terminal B as an example, the method describes a scenario where terminal A requests terminal B to launch a P2P type data channel application. Both terminal A and terminal B are running data channel application A. The method includes:

[0257] Step 900: Establish CDC between terminal A and terminal B.

[0258] As an example, the specific process of establishing a CDC between terminal A and terminal B can be found in [reference needed]. Figure 8 The process shown in the embodiments of this application will not be described again here.

[0259] As an example, a CDC can be established between terminal A and terminal B in the following situations: For example, terminal A and terminal B can establish a CDC before sending the first request message. Alternatively, a CDC can be established when terminal A and terminal B create an IMS session, or when either terminal A or terminal B requests the creation of a BDC, a data channel can also be created as a CDC. Or, when the first P2P type ADC is established between terminal A and terminal B, the DCMTSI Client of terminal A and the DCMTSI Client of terminal B can also create a data channel as a CDC.

[0260] Step 901: Data Channel Application A requests the client (DCMTSIClient) that supports DC's IMS multimedia telephony service to start Data Channel Application A on terminal B.

[0261] For example, data channel application A can send request 1 to the DCMTSI Client, requesting that data channel application A be started on terminal B. As an example, request 1 may or may not carry any parameters, or it may carry parameters instructing the start of data channel application A on terminal B.

[0262] Application A on terminal A can communicate with the DCMTSI Client via the API provided by the DCMTSI Client. For example, the API provided by the DCMTSI Client is openRemoteApp, which does not require any parameters.

[0263] Data channel application A can use the API provided by the DCMTSI Client to request the client (DCMTSI Client) that supports the DC's IMS multimedia telephony service to start data channel application A on terminal B.

[0264] As an example, data channel application A can be a P2P type application.

[0265] Step 902: Terminal A sends a first request message to Terminal B through CDC, and correspondingly, Terminal B receives the first request message from Terminal A through CDC.

[0266] For example, the DCMTSI Client in terminal A sends a first request message to the DCMTSI Client in terminal B via CDC.

[0267] For example, the first request message requests to start / wake up data channel application A on terminal B. For example, the first request message includes the APP ID of data channel application A.

[0268] As an example, the first request message can be an application layer message, which can use the HTTP protocol as the application layer protocol. For example, the message could be OpenRemoteApp(appid), or terminal A could directly transmit the message via JSON.

[0269] Step 903: After receiving the first request message, terminal B checks whether data channel application A is in the foreground.

[0270] For example, the DCMTSI Client in terminal B checks whether a specified data channel application A is in the foreground, such as whether a mini-program-type data channel application A is in the shown state, or whether a web application-type data channel application A is in the active state. If a mini-program-type data channel application A is not in the shown state, it is determined that data channel application A is not started or is not in the foreground. If a web application-type data channel application A is not in the active state, it is determined that data channel application A is not started or is not in the foreground.

[0271] After terminal B checks that data channel application A is not in the foreground, terminal B may execute steps 904a1 to 904a2, or after terminal B checks that data channel application A is not in the foreground, terminal B may also execute step 904b.

[0272] Optionally, when terminal B receives the first request message, data channel application A on terminal B may or may not be in the foreground. If data channel application A on terminal B is in the foreground, terminal B may execute step 905 below to inform terminal A that data channel application A on terminal B is in the running state.

[0273] Step 904a1: If data channel application A is not started, terminal B outputs a prompt message indicating whether the user agrees to / declines to switch data channel application A to the foreground. For example, terminal B's DCMTSI Client outputs the prompt message.

[0274] As an example, for a data channel application A of the mini-program type, this prompt message is used to indicate whether the user agrees to / declines to the shown state of data channel application A.

[0275] For a web application type data channel application A, this prompt message is used to instruct the user whether to agree to / decline switching data channel application A to the Active state.

[0276] For example, terminal B can output prompts to remind users through pop-ups, vibrations, or shaking, or directly wake up application A on the data channel.

[0277] As an example, UE B can directly wake up data channel application A in the following ways: For a web application type data channel application A, if terminal B determines that data channel application A is not in an Active state, it will switch the web application type data channel application A to an Active state to wake up data channel application A. For a mini-program type data channel application A, if terminal B determines that data channel application A is not in a shown state, it will switch the mini-program type data channel application A to a shown state to wake up data channel application A.

[0278] It should be noted that this step is optional.

[0279] Step 904a2: Terminal B performs corresponding processing on data channel application A based on the user's operation on the prompt information, such as starting data channel application A or not starting data channel application A.

[0280] As an example, for a web application-type data channel application A, terminal B can display a prompt message asking the user whether to agree / decline switching data channel application A to the Active state. If terminal B detects an operation indicating agreement to switch data channel application A to the Active state, it switches the web application-type data channel application A to the Active state and then executes step 905 below. If terminal B detects an operation indicating denial of switching data channel application A to the Active state, it maintains the state of the web application-type data channel application A unchanged and then executes step 905 below.

[0281] As another example, for a mini-program type data channel application A, terminal B can display a prompt message to ask the user whether to agree / decline switching data channel application A to the "shown" state. If terminal B detects an operation indicating agreement to switch data channel application A to the "shown" state, it switches the mini-program type data channel application A to the "shown" state and then executes step 905 below. If terminal B detects an operation indicating denial to switch data channel application A to the "shown" state, it maintains the state of the mini-program type data channel application A unchanged and then executes step 905 below.

[0282] Step 904b: Terminal B starts data channel application A. For example, the DCMTSI Client in terminal B starts data channel application A.

[0283] Step 905: Terminal B sends a first response message to Terminal A via CDC, and Terminal A receives the first response message from Terminal B. This response message carries the startup result of data channel application A on Terminal B.

[0284] As an example, the first response message includes the startup result of data channel application A on terminal B, such as whether it is started or not.

[0285] As an example, if terminal B does not start data channel application A on terminal B, the first response message should also carry the reason why data channel application A on terminal B is not started, such as the user of terminal B refusing to start application A, terminal B not having subscribed to this service, or failure to download or install data channel application A, etc.

[0286] For example, the first response message can be an application layer message. If HTTP is used as the application layer message, a 2xx response can be sent as a success response, or a 4xx or 5xx response can be sent as a failure response, along with the error reason, such as user_rejected or download failed (DOWNLOAD_FAILURE).

[0287] Step 906: The DCMTSI Client on terminal A informs data channel application A of the startup result of data channel application A on terminal B.

[0288] like Figure 10 As shown, Figure 10 This application provides a flowchart illustrating the process of updating the status of a data channel application in an IMS session. Taking terminal A as an example and terminal B as an example, the method describes how terminal A requests terminal B to set a P2P-type data channel application on terminal B to a specified state. Both terminal A and terminal B have data channel application A running. The method includes:

[0289] Step 1000: Establish CDC between terminal A and terminal B.

[0290] For details on the implementation of step 1000, please refer to the description in step 900, which will not be repeated here.

[0291] Step 1001: Data channel application A on terminal A requests the DCMTSI Client to change the status of data channel application A on terminal B.

[0292] For example, data channel application A can send request 1 to the DCMTSI Client, requesting a change in the state of data channel application A on terminal B. As an example, request 1 includes the APP ID of data channel application A and its first state. The first state is the state that terminal A wants data channel application A on terminal B to be adjusted to. For example, the first state could include: started, foreground, background, closed, etc.

[0293] For example, data channel application A on terminal A can communicate with DCMTSIClient through the API provided by DCMTSI Client. For instance, an API provided by DCMTSI Client is: changeRemoteAppStatus(status), where status includes Launched, Shown, Hidden, etc.

[0294] Data channel application A can request the DCMTSI Client, which supports the DC's IMS multimedia telephony service, to update the state of data channel application A on terminal B to the first state via the API provided by the DCMTSI Client.

[0295] As an example, data channel application A can be a P2P type application.

[0296] Step 1002: Terminal A sends a first request message via CDC. Correspondingly, Terminal B receives the first request message via CDC.

[0297] For example, the first request message requests a change to the state of data channel application A on terminal B. For example, the first request message includes the APP ID of data channel application A and the state that data channel application A needs to be adjusted to, i.e., the first state.

[0298] As an example, the first request message can be an application layer message, such as the message: OpenRemoteApp(APP ID, status).

[0299] Step 1003: After receiving the first request message, terminal B parses the first request message sent by terminal A and checks whether data channel application A is in the first state.

[0300] For example, the DCMTSI Client on terminal B checks whether data channel application A is in the first state.

[0301] As an example, if terminal B confirms that data channel application A is not in the first state, then terminal B can execute the following steps 1004 and 1005, or omit step 1004 and directly execute step 1005, that is, directly update data channel application A on terminal B to the first state.

[0302] As an example, if terminal B confirms that data channel application A is in the first state, then terminal B can perform the following step 1006 so that terminal A can determine that terminal B's data channel application A is in the first state.

[0303] Step 1004: If data channel application A on terminal B is not in the first state, then terminal B prompts the user whether to agree to / reject the state adjustment of data channel application A.

[0304] For example, if the DCMTSI Client on terminal B determines that data channel application A on terminal B is not in the first state, the DCMTSI Client on terminal B outputs a prompt message to ask the user whether to agree to / reject the state adjustment of data channel application A.

[0305] For example, the first state is "started". Taking a data channel application A of the mini-program type as an example, if the data channel application A on terminal B is in the "shown" state, then terminal B determines that the data channel application A is in the first state. Taking a data channel application A of the web application type as an example, if the data channel application A on terminal B is in the "Active" state, then terminal B determines that the data channel application A is in the first state.

[0306] For example, the first state is closed. Taking a data channel application A of the mini-program type as an example, if the data channel application A on terminal B is in the shown state, then terminal B determines that the data channel application A is not in the first state. Taking a data channel application A of the web application type as an example, if the data channel application A on terminal B is in the active state, then terminal B determines that the data channel application A is not in the first state.

[0307] As an example, terminal B can prompt the user whether they agree to / reject the status adjustment of the data channel application A through pop-ups, vibrations, or shaking.

[0308] As an example, if terminal B detects that the user indicates agreement to adjust the state of data channel application A to the first state when performing step 1004, then step 1005 is performed. If terminal B detects that the user indicates refusal to adjust the state of data channel application A to the first state, then step 1006 is performed.

[0309] Step 1005: Terminal B switches the state of data channel application A to the first state.

[0310] Step 1006: Terminal B sends a first response message to Terminal A via CDC, and correspondingly, Terminal A receives the first response message from Terminal B via CDC.

[0311] The first response message includes the state change result of data channel application A. For example, terminal B successfully updated the state of data channel application A to the first state, or terminal B failed to successfully update the state of data channel application A to the first state. If the state of data channel application A was not successfully updated to the first state, the first response message may also carry the reason for the failure, such as user rejection, etc.

[0312] Through step 1006, terminal A can know the status change result of data channel application A on terminal B.

[0313] Step 1007: Terminal A notifies the data channel application A of the state change result of DC application A on terminal B.

[0314] like Figure 11 As shown, Figure 11 This is a schematic diagram illustrating the specific process of launching a data channel application in an IMS session under the P2A scenario provided in this application embodiment. Taking the first device as DCSF and the first terminal as a terminal as an example, the method includes:

[0315] Step 1100: Establish CDC between DCSF and terminal.

[0316] For coordination of P2A type data channel applications, when the terminal creates a BDC or the first P2A type ADC is created between the terminal and DC AS, the terminal creates a special P2A type DC, namely CDC, between DCMTSI Client and DCSF.

[0317] The process of establishing a CDC is the same as that of other DCs. However, through this CDC, DC AS can wake up the IMS data channel application on terminal A, avoiding the situation where the service cannot run normally due to the lifecycle management of the data channel application during the IMS session call.

[0318] In this state, the CDC is between the terminal and the DCSF, not between the terminal and the DC AS. This is because the CDC is shared by different data channel applications; if it were set to be between the terminal and the DC AS, it could only be used by a single DC AS.

[0319] Step 1101: DC AS requests DCSF to start the terminal's data channel application A.

[0320] As an example, DC AS can send a request to DCSF to initiate the data channel application A of the terminal, and this request may not need to carry any parameters.

[0321] In the P2A scenario, DC AS calls the service provided by DCSF to request the activation of application A on the terminal side's data channel.

[0322] Step 1102: DCSF sends a first request message to the terminal via CDC. Correspondingly, terminal A receives the first request message from DCSF via CDC.

[0323] For example, the first request message requests the launch of data channel application A. For example, the first request message may include the APP ID of data channel application A. For example, the first request message may be an application-layer message and... Figure 8 The embodiments shown are consistent and will not be repeated here.

[0324] As an example, the first request message may also include first indication information for requesting the activation of data channel application A.

[0325] Step 1103: After receiving the first request message, the terminal checks whether the data channel application A has been started.

[0326] As an example, if data channel application A is not started, the terminal can first prompt the user and then process accordingly based on the user's consent / denial, such as executing steps 1104 to 1106 below. Alternatively, the terminal can directly execute the action of waking up data channel application A, that is, omitting step 1104 and executing steps 1105 to 1106. If data channel application A is started, the terminal executes step 1106 below.

[0327] Step 1104: If the terminal determines that data channel application A is not started, the terminal will output a prompt message. This prompt message is used to ask the user whether they agree to / refuse to start data channel application A.

[0328] For example, the terminal can output prompts through pop-ups, vibrations, or shaking to remind the user whether they agree to or refuse to start the data channel application A.

[0329] As an example, if the terminal detects a user indication to consent to starting data channel application A when performing step 1104, then step 1105 is performed. If the terminal detects a user indication to refuse to start data channel application A, then step 1106 is performed.

[0330] Step 1105: Terminal wake-up / start data channel application A.

[0331] Step 1106: The terminal informs the DCSF of the status change result of data channel application A through CDC.

[0332] For example, terminal A can send a first response message to DCSF via CDC. This first response message includes the status change result of data channel application A. For example, it could indicate that data channel application A was successfully started, or that it was not successfully started. If the data channel application was not successfully started, it would include the reason for the failure, such as user refusal, the terminal not having subscribed to the service, or download / installation failure.

[0333] Step 1107: DCSF informs DC AS of the data channel application A startup result of the terminal.

[0334] The above mainly describes the solutions of the embodiments of this application from the perspective of interaction between various network elements. It is understood that each network element, such as the first device and the first terminal, includes corresponding structures and / or software modules to perform the above functions in order to achieve them. Those skilled in the art should readily recognize that, based on the units and algorithm steps of the examples described in conjunction with the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0335] This application embodiment can divide functional units according to the first device and first terminal described in the above method example. For example, each function can be divided into different functional units, or two or more functions can be integrated into one processing unit. The integrated unit can be implemented in hardware or as a software functional unit. It should be noted that the unit division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.

[0336] The above combination Figures 5 to 11 The methods described in the embodiments of this application have been explained. The communication apparatus provided in the embodiments of this application for executing the above methods is described below. Those skilled in the art will understand that the methods and apparatus can be combined with and referenced in each other, and the communication apparatus provided in the embodiments of this application can execute the steps performed by the first device and the first terminal in the above analysis method.

[0337] When using integrated units Figure 12 The communication device described in the above embodiments is illustrated. The communication device may include a communication module 1213 and a processing module 1212. In an optional implementation, the communication device may further include a storage module 1211 for storing the program code and data of the communication device.

[0338] In one example, the communication device is a first device, or a chip applied in a first device. In this case, the communication module 1213 is used to support communication between the communication device and an external network element (e.g., a first terminal). For example, the communication module 1213 is used to perform signal transmission and reception operations of the first device in the above method embodiments. The processing module 1212 is used to perform processing operations of the first device in the above method embodiments.

[0339] In one embodiment of this application, the communication module 1213 is used to perform the above embodiments. Figure 7The sending action performed by the first device in step 702. Processing module 1212 is used to support the communication device in performing this action. Figure 7 Step 701 of the steps.

[0340] For example, in another embodiment of this application, the communication module 1213 is also used to support the first device in performing the receiving action performed by the first device in step 905, step 1006, or step 1106.

[0341] In another example, the communication device is a first terminal, or a chip applied in a first terminal. In this case, the communication module 1213 is used to support communication between the communication device and an external network element (e.g., a first device). For example, the communication module 1213 is used to perform signal transmission and reception operations of the first terminal in the above method embodiments. The processing module 1212 is used to perform processing operations of the first terminal in the above method embodiments.

[0342] In one embodiment of this application, the communication module 1213 is used to perform the above embodiments. Figure 7 The receiving action performed by the first terminal in step 702. Processing module 1212 is used to support the communication device in performing the actions performed by the first terminal in steps 701 and 703.

[0343] For example, in another embodiment of this application, the communication module 1213 is also used to support the first terminal in performing the sending action performed by the first device in step 905, step 1006, or step 1106.

[0344] The processing module 1212 can be a processor or controller, such as a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field-programmable gate array, or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It can implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computational functions, such as a combination of one or more microprocessors, a combination of a digital signal processor and a microprocessor, etc. The communication module can be a transceiver, transceiver circuitry, or communication interface, etc. The storage module can be a memory.

[0345] When the processing module 1212 is a processor 1301 or a processor 1305, the communication module 1213 is a communication interface 1303, and the storage module 1211 is a memory 1302, the communication device involved in this application can be... Figure 13 The communication device shown.

[0346] Figure 13The diagram shown is a hardware structure schematic of a communication device provided in an embodiment of this application. The structures of the first terminal and the first device in this embodiment can be referenced as follows: Figure 13 The diagram shows the structure of a communication device. This communication device includes a processor 1301, a communication line 1304, and at least one communication interface. Figure 13 (The example described uses communication interface 1303 as an example).

[0347] The processor 1301 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits used to control the execution of the program of the present application.

[0348] Communication line 1304 may include a path for transmitting information between the aforementioned components.

[0349] The communication interface 1303 is used to exchange information with other devices, such as any transceiver, for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area network (WLAN), etc.

[0350] Optionally, the communication device may also include a memory 1302.

[0351] The memory 1302 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory may exist independently and be connected to the processor via communication line 1304. The memory may also be integrated with the processor.

[0352] The memory 1302 stores computer execution instructions for implementing the scheme of this application, and its execution is controlled by the processor 1201. The processor 1301 executes the computer execution instructions stored in the memory 1302, thereby implementing a communication method provided in the following embodiments of this application.

[0353] Optionally, the computer execution instructions in the embodiments of this application may also be referred to as application code, and the embodiments of this application do not specifically limit this.

[0354] In a specific implementation, as one example, the processor 1301 may include one or more CPUs, for example... Figure 13 CPU0 and CPU1 in the CPU.

[0355] In a specific implementation, as one example, the communication device may include multiple processors, for example... Figure 13 Processors 1301 and 1305 are mentioned. Each of these processors can be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. A processor here can refer to one or more devices, circuits, and / or processing cores used to process data (such as computer program instructions).

[0356] The steps performed by processors 1301 and 1305 can refer to the steps performed by processing module 1212 described above. The steps performed by communication interface 1303 can refer to the steps performed by communication module 1213 described above.

[0357] Figure 14 This is a schematic diagram of the structure of chip 140 provided in an embodiment of this application. Chip 140 includes one or more (including two) processors 1410 and communication interfaces 1430.

[0358] Optionally, the chip 140 also includes a memory 1440, which may include read-only memory and random access memory, and provides operation instructions and data to the processor 1410. A portion of the memory 1440 may also include non-volatile random access memory (NVRAM).

[0359] In some implementations, memory 1440 stores elements such as execution modules or data structures, or subsets thereof, or extended sets thereof.

[0360] In this embodiment of the application, the corresponding operation is executed by calling the operation instructions stored in the memory 1440 (the operation instructions can be stored in the operating system).

[0361] One possible implementation is that the first terminal and the first device have similar structures, and different devices can use different chips to achieve their respective functions.

[0362] The processor 1410 controls the processing operations of either the first terminal or the first device. The processor 1410 can also be referred to as a central processing unit (CPU).

[0363] Memory 1440 may include read-only memory and random access memory, and provides instructions and data to processor 1410. A portion of memory 1440 may also include NVRAM. For example, in an application, memory 1440, communication interface 1430, and memory 1440 are coupled together via bus system 1420, which may include, in addition to data bus, power bus, control bus, and status signal bus, etc. However, for clarity, in Figure 14 The general labeled all buses as Bus System 1420.

[0364] The methods disclosed in the embodiments of this application can be applied to or implemented by the processor 1410. The processor 1410 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware in the processor 1410 or by instructions in the form of software. The processor 1410 may be a general-purpose processor, a digital signal processor (DSP), an ASIC, a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor. The software modules may be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in memory 1440. Processor 1410 reads the information in memory 1440 and, in conjunction with its hardware, completes the steps of the above method.

[0365] In one possible implementation, the communication interface 1430 is used to perform... Figures 5 to 11 The illustrated embodiment shows the receiving and transmitting steps of the first terminal. Processor 1410 is used to execute... Figures 5 to 11The processing steps of the first terminal in the illustrated embodiment.

[0366] In one possible implementation, the communication interface 1430 is used to perform... Figures 5 to 11 The steps of receiving and transmitting data for the first device in the illustrated embodiment are shown. Processor 1410 is used to execute... Figures 5 to 11 The steps of the first device processing in the illustrated embodiment.

[0367] On the one hand, a computer-readable storage medium is provided, in which instructions are stored, which, when executed, implement as follows: Figures 5 to 11 The function performed by the first terminal or the first device.

[0368] On the one hand, a computer program product including instructions is provided, wherein the computer program product includes instructions that, when executed, implement such... Figures 5 to 11 The function performed by the first device or the first terminal.

[0369] On one hand, a chip is provided for use in a first terminal. The chip includes at least one processor and a communication interface, the communication interface and the at least one processor being coupled together. The processor is used to execute instructions to achieve, for example... Figures 5 to 11 The function executed by the first terminal.

[0370] On one hand, a chip is provided for use in a first terminal. The chip includes at least one processor and a communication interface, the communication interface and the at least one processor being coupled together. The processor is used to execute instructions to achieve, for example... Figures 5 to 11 The function performed by the first device.

[0371] This application provides a communication system comprising a first terminal and a first device. A CDC (Connection Control Center) exists between the first terminal and the first device. The first terminal is used to perform actions such as... Figures 5 to 11 The function executed by the first terminal. The first device is used to execute... Figures 5 to 11 The function performed by the first device. For example, the first device can be a second terminal, or a DCMTSI client running on the second terminal. Alternatively, the first device can be a DCSF.

[0372] When the first device is the second terminal, there is an IMS session between the first terminal and the second terminal. This IMS session includes not only the CDC (Distributed Damping Center) but also the ADC (Digital Converter) between the first and second terminals. Furthermore, either the first terminal or the second terminal also has a BDC (Browser Controller).

[0373] In the case where the first device is a DCSF, the communication system may further include a DC AS. An ADC is located between the first terminal and the DCAS.

[0374] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this application are performed entirely or partially. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user equipment, or other programmable device. The computer program or instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another. For example, the computer program or instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; it can also be an optical medium, such as a digital video disc (DVD); or it can be a semiconductor medium, such as a solid-state drive (SSD).

[0375] Although this application has been described herein in conjunction with various embodiments, those skilled in the art, by reviewing the accompanying drawings, the disclosure, and the appended claims, will understand and implement other variations of the disclosed embodiments in carrying out the claimed application. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude multiple instances. A single processor or other unit can implement several functions listed in the claims. While different dependent claims may recite certain measures, this does not mean that these measures cannot be combined to produce good results.

[0376] Although this application has been described in conjunction with specific features and embodiments, it is obvious that various modifications and combinations can be made thereto without departing from the spirit and scope of this application. Accordingly, this specification and drawings are merely exemplary illustrations of this application as defined by the appended claims, and are considered to cover any and all modifications, variations, combinations, or equivalents within the scope of this application. Clearly, those skilled in the art can make various alterations and modifications to this application without departing from the spirit and scope of this application. Thus, if such modifications and modifications of this application fall within the scope of the claims of this application and their equivalents, this application is also intended to include such modifications and modifications.

Claims

1. A communication method, characterized in that, The method includes: Establish a first data channel with the first terminal; A first request message is sent through the first data channel. The first request message includes a first application identifier. The first request message is used to request an update of the status of the first data channel application corresponding to the first application identifier on the first terminal. The first data channel application is used for data interaction between the first terminal and the second terminal or the data channel application server during an Internet Protocol Multimedia Subsystem (IMS) session.

2. The method according to claim 1, characterized in that, The first request message requests the activation of the first data channel application on the first terminal that corresponds to the first application identifier.

3. The method according to claim 1, characterized in that, The first request message includes a first state, which is the state that the first device expects the first data channel application corresponding to the first application identifier on the first terminal to be updated.

4. The method according to any one of claims 1 to 3, characterized in that, The method further includes: A first response message is received through the first data channel. The first response message includes first information, which indicates the status update result of the first data channel application on the first terminal. The status update result includes at least the startup result of the first data channel application.

5. The method according to claim 4, characterized in that, The first information indicates that the status of the first data channel application was not successfully updated, and the first response message also includes the reason why the status of the first data channel application was not successfully updated.

6. The method according to any one of claims 1 to 5, characterized in that, The first device is a second terminal, or an IMS multimedia telephony service client supporting DC on the second terminal. Establishing a first data channel with the first terminal includes: When either the first terminal or the second terminal creates a second data channel, the first data channel is established between the first terminal and the second terminal. The second data channel is used to support either the first terminal or the second terminal in obtaining data channel applications; or... When the first terminal and the second terminal create a first point-to-point type third data channel, the first data channel is established with the first terminal. The third data channel is used to transmit data generated by the data channel application run by both the first terminal and the second terminal.

7. The method according to any one of claims 1 to 5, characterized in that, The first device is a data channel signaling function network element, and the establishment of the first data channel with the first terminal includes: When the first terminal creates the second data channel, it establishes the first data channel with the first terminal; the second data channel is used to support the first terminal in obtaining data channel applications. or, When the first terminal creates a third data channel of the first node-to-application type between itself and the data channel application server, the data channel signaling function network element establishes the first data channel with the first terminal, and the third data channel is used to transmit data generated by the data channel application.

8. The method according to any one of claims 1 to 7, characterized in that, The first data channel is used to transmit the first request message from different data channel applications on the first terminal.

9. The method according to any one of claims 1 to 8, characterized in that, The establishment of the first data channel with the first terminal includes: Receive a data channel creation request message from a first terminal, the data channel creation request message requesting the creation of a first data channel with a first device, the data channel creation request including media negotiation information for the first data channel to be created; A response message is sent to the first terminal, the response message including the media information of the first data channel received by the first device.

10. A communication method, characterized in that, Applied to a first terminal, the method includes: Establish a first data channel with the first device; A first request message is received through the first data channel. The first request message includes a first application identifier. The first request message is used to request an update of the status of the first data channel application on the first terminal that corresponds to the first application identifier. The first data channel application is used for the first terminal to exchange data with the second terminal or the data channel application server during an Internet Protocol Multimedia Subsystem (IMS) session. In response to the first request message, update the status of the first data channel application.

11. The method according to claim 10, characterized in that, The first request message requests the activation of the first data channel application on the first terminal corresponding to the first application identifier. The step of updating the state of the first data channel application in response to the first request message includes: In response to the first request message, the first data channel application on the first terminal is started.

12. The method according to claim 10, characterized in that, The first request message includes: a first state, wherein the first state is the state that the first device expects the first data channel application corresponding to the first application identifier on the first terminal to be updated, and the step of updating the state of the first data channel application in response to the first request message includes: In response to the first request message, the status of the first data channel application corresponding to the first application identifier on the first terminal is updated to the first status.

13. The method according to any one of claims 10 to 12, characterized in that, The step of updating the state of the data channel application in response to the first request message includes: In response to the first request message, a prompt message is output, which is used to prompt whether to update the status of the first data channel application; A first action in response to the prompt message was detected; the first action indicated agreement to update the status of the first data channel application. In response to the first operation, update the state of the first data channel application.

14. A communication device, characterized in that, The device includes: a communication module and a processing module. Wherein, the processing module is used to execute the processing action performed by the first device in the method according to any one of claims 1 to 9, and the communication module is used to execute the receiving or transmitting action performed by the first device in the method according to any one of claims 1 to 9; or, The processing module is used to perform the processing action performed by the first terminal in the method according to any one of claims 10 to 13, and the communication module is used to perform the receiving or sending action performed by the first terminal in the method according to any one of claims 10 to 13.

15. A communication system, characterized in that, include: A first device and a first terminal, wherein the first device is used to perform the method according to any one of claims 1 to 9, and the first terminal is used to perform the method according to any one of claims 10 to 13.

16. A communication device, characterized in that, The communication device includes a memory and a processor. The memory is used to store instructions, and the processor is used to execute the instructions stored in the memory. Execution of the instructions stored in the memory causes the processor to perform the method according to any one of claims 1 to 9, or the method according to any one of claims 10 to 13.

17. A chip, characterized in that, The chip includes at least one processor and a communication interface, the communication interface being coupled to the at least one processor, the at least one processor being configured to run computer programs or instructions to implement the method as described in any one of claims 1 to 9, or the method as described in any one of claims 10 to 13, and the communication interface being configured to communicate with other modules outside the chip.

18. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores instructions that, when executed, implement the method of any one of claims 1 to 9, or the method of any one of claims 10 to 13.

19. A computer program product, characterized in that, The computer program product stores instructions that, when executed on a computer, cause the computer to perform the method of any one of claims 1 to 9, or the method of any one of claims 10 to 13.