Communication method, apparatus and system
By establishing a data channel in the IMS session and sending request messages to start or update the data channel application status, the problem of business interruption caused by the background application of the data channel is solved, ensuring business continuity and efficiency, and saving terminal power.
Patent Information
- Application Number
- PCT/CN2025/106685
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-07
- Filing Date
- 2025-07-02
- Publication Date
- 2026-02-12
AI Technical Summary
During an IMS session, the data channel application on the terminal is switched to the background or shut down, causing the service to malfunction and affecting the continuity and efficiency of communication.
By establishing a data channel in the IMS session and sending request messages to start or update the data channel application status on the terminal, it is ensured that the application is running in the foreground, thus avoiding business interruptions caused by it not running in the foreground.
This enables normal operation even when the data channel application is switched to the background during an IMS session, improving business continuity and efficiency while saving terminal power consumption.
Smart Images

Figure CN2025106685_12022026_PF_FP_ABST
Abstract
Description
Communication method, device and system
[0001] The present application claims priority from the Chinese patent application No. 202411082297.0 filed on August 7, 2024, and entitled "Communication method, device and system", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0002] The present application relates to the field of communication technology, in particular to a communication method, device and system. BACKGROUND
[0003] The data channel (DC) application (also referred to as Internet protocol multimedia subsystem (IMS) data channel application (IMSDC APP)) on the terminal can realize real-time data interaction between the two parties of the call by delivering various data such as text, pictures, location and files through the data channel included in the IMS session.
[0004] However, the running environment of the data channel application usually allows one data channel application to run, i.e., only one data channel application can be in the foreground. When the terminal downloads the data channel application and uses it, it may choose to close the data channel application or switch it to the background. Alternatively, when there are multiple data channel applications in the IMS session, the original data channel application will be closed or switched to the background after the new data channel application is started.
[0005] However, in many scenarios, in order to avoid frequent signaling negotiation, the data channel corresponding to the data channel application in the background or closed will not be closed. Then when the terminal on one side initiates a service again, if the data channel application on the opposite terminal is closed or switched to the background, it may cause the service to fail to run normally. SUMMARY
[0006] The present application provides a communication method, device and system to solve the problem that the service fails to run normally due to the data channel application on the terminal of one of the two parties of the communication not being in the foreground during the IMS session.
[0007] To achieve the above object, the embodiments of the present application adopt the following technical solutions:
[0008] In a first aspect, an embodiment of the present application provides a communication method, applied to a first device or a chip in the first device. The method comprises: establishing, by the first device, a first data channel with a first terminal; and sending, by the first device, a first request message to the first terminal through the first data channel. The first request message comprises a first application identifier. The first request message requests to update a 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 a second terminal or a data channel (DC) application server (AS) in an Internet Protocol Multimedia Subsystem (IMS) session.
[0009] In some scenarios, the first data channel application on the first terminal may be switched to the background due to some 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 run normally, or in some scenarios, the first device wants to change the state of the first data channel application on the first terminal to a state expected by the first device. To achieve the above purpose, in the method provided by an embodiment of the present application, the first device can send a first request message to the first terminal through the first data channel, so that the first device can 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, so as to solve the problem that the service cannot run normally in the IMS session between the first terminal and the second terminal or the DC AS due to the fact that the first data channel application on the first terminal is not running in the foreground.
[0010] In a possible implementation manner of the present application, the first request message requests to start the first data channel application on the first terminal. For example, in this case, the first request message can be referred to as a start request message. This scheme can achieve that the first device requests to start / wake up the first data channel application corresponding to the first application identifier on the first terminal through the first data channel, so as to avoid the problem that the service cannot run normally in the IMS session due to the fact that the first data channel application on the first terminal is not running in the foreground.
[0011] In a possible implementation of the present application, the first request message further comprises a first state, and the first state is a state to which the first device expects the first data channel application on the first terminal to be updated. This scheme can realize that the first device requests 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 through the first data channel. For example, the first state can be a closed state or a background state, so as to save the power consumption of the terminal side and avoid the first data channel application on the first terminal from consuming the power of the first terminal due to always running on the first terminal. For example, the first state can be a start state or a foreground state, so as to avoid the situation that the service cannot normally run due to the first data channel application on the first terminal not running in the foreground during the IMS session.
[0012] In a possible implementation of the present application, the first device can be a second terminal, the second terminal and the first terminal have established an IMS session, and the second terminal also has the first data channel application described above. Alternatively, the first device can be a DC-enabled IMS multimedia telephone service (Data Channel Multimedia Telephony Service for IMS, DCMTSI) client installed on the second terminal, or the first device can also be a data channel signaling function (Data Channel Signaling Function, DCSF) network element.
[0013] In a possible implementation of the present application, the method provided by the embodiment of the present application can further comprise: receiving, by the first device, a first response message through the first data channel. The first response message comprises first information. For example, the first information indicates a state update result of the first data channel application on the first terminal. For example, the state update result at least comprises a start result of the first data channel application. By receiving the first response message, it is convenient for the first device to determine whether the state of the first data channel corresponding to the first application identifier on the first terminal is successfully updated.
[0014] In a possible implementation of the present application, if the first request message requests to start the first data channel application on the first terminal, the first information indicates a start result of the first data channel application on the first terminal. For example, the start result can be successful start or unsuccessful start. For example, when the start result is unsuccessful start, the first response message can further comprise a reason for the unsuccessful start.
[0015] In a possible implementation of the present application, the first information can indicate that the state update result of the first data channel application on the first terminal is successful or unsuccessful.
[0016] In a possible implementation of the present application, the first information indicates that the first terminal fails to update the status of the first data channel, and the first response message further comprises a reason for the failure to update the status of the first data channel. In this way, the first device can determine the reason for the failure of the first terminal to update the status of the first data channel on the first terminal.
[0017] In a possible implementation of the present application, the first information indicates that the first terminal fails to update the status of the first data channel, and the first response message further comprises a reason for the failure to update the status of the first data channel. In this way, the first device can determine the reason for the failure of the first terminal to update the status of the first data channel on the first terminal.
[0018] In a possible implementation of the present application, the first device is the second terminal or a DCMTSI client on the second terminal; and the method for establishing the first data channel with the first terminal comprises: establishing the first data channel with the first terminal when either of the first terminal and the second terminal creates a second data channel, the second data channel being used to support either of the first terminal and the second terminal to obtain a data channel application; or,
[0019] The first terminal and the second terminal create a first third data channel of a point-to-point (P2P) type, and the first data channel is established with the first terminal, the third data channel being used to transmit data generated by the first data channel application running on both the first terminal and the second terminal. Specifically, the third data channel is used to transmit interactive data / application data generated by the first data channel application running on both the first terminal and the second terminal.
[0020] In a possible implementation of the present application, the second data channel is a data channel created by either of the first terminal and the second terminal through a Session Initiation Protocol (SIP) request of INVITE, UPDATE or re-INVITE.
[0021] In a possible implementation of the present application, the first device is the second terminal, and before the second terminal sends the first request message through the first data channel with the first terminal, the method further comprises: the second terminal obtains a second request message of the first data channel application on the first device through an Application Programming Interface (API) interface provided by the DCMTSI client. The second request message requests to start the first data channel application on the first terminal.
[0022] In a possible implementation of the present application, the first device is a DCSF, and the method provided by the embodiment of the present application further includes: the first terminal establishes the first data channel with the first terminal when the second data channel is created; the second data channel is used to support the first terminal to acquire a data channel application; or, the DCSF network element establishes the first data channel with the first terminal when the first terminal creates a second data channel of a first node pair application (P2A) type between the data channel application server, and the second data channel is used to transmit data generated by the first data channel application.
[0023] In a possible implementation of the present application, before the first request message is sent through the first data channel, the method provided by the embodiment of the present application further includes: the DCSF receives a third request message from the DC AS. The third request message requests to start the first data channel application on the first terminal.
[0024] In a possible implementation of the present application, after the first response message is received through the first data channel, the method provided by the embodiment of the present application further includes: the first device outputs a state update result of the first data channel application on the first terminal.
[0025] In a possible implementation of the present application, the first data channel is established with the first terminal, including: the first device receives a data channel creation request message from the first terminal, the data channel creation request message requests to create the first data channel with the first device, and the media negotiation information of the first data channel to be created is included in the data channel creation request; the first device sends a response message to the first terminal, and the response message includes the media negotiation information of the first data channel accepted by the first device.
[0026] In a possible implementation of the present application, the first data channel is established with the first terminal, including: the first device sends a data channel creation request message to the first terminal. The data channel creation request message requests to create the first data channel with the first device, and the media negotiation information of the first data channel to be created is included in the data channel creation request; the first device receives a response message from the first terminal, and the response message includes the media information of the first data channel accepted by the first terminal.
[0027] In a possible implementation of the present application, the first data channel is used to transmit first request messages of different data channel applications. The first application is any one of a plurality of different data channel applications.
[0028] In a second aspect, the embodiments of the present application provide a communication method applied to a first terminal or a chip in the first terminal, the method comprising: establishing a first data channel between the first terminal and a first device. The first terminal receives a first request message through the first data channel, wherein the first request message comprises a first application identifier. The first request message requests to update a 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 the first terminal and a second terminal or a DC AS to interact data in an IMS session process. The first terminal updates the state of the first data channel application corresponding to the first application identifier on the first terminal in response to the first request message.
[0029] In a possible implementation of the present application, after the first terminal updates the state of the first data channel application on the first terminal, the method provided by the embodiments of the present application can further comprise: the first terminal sends a first response message to the first device through the first data channel, wherein the first response message comprises first information, and the first information indicates a state update result of the first data channel application on the first terminal.
[0030] In a possible implementation of the present application, the first request message requests to start the first data channel application on the first terminal, and the first terminal updates the state of the first data channel application on the first terminal in response to the first request message, comprising: the first terminal starts the first data channel application on the first terminal in response to the first request message. For example, the first data channel application on the first terminal is not started, and the first data channel application on the first terminal is started. For example, the first data channel application on the first terminal is in the foreground, and the first terminal updates the state of the first data channel application on the first terminal to the foreground state.
[0031] In a possible implementation of the present application, the first request message is a start request message, the start request message requests to start the first data channel application on the first terminal, and the first terminal updates the state of the first data channel application on the first terminal in response to the first request message, including: the first terminal outputs prompt information to prompt the user to start / reject to start the first data channel application on the first terminal in a case where the data channel application on the first terminal is not in the foreground in response to the first request message. In a case where an operation of the user indicating to start the first data channel application on the first terminal is detected, the first data channel application on the first terminal is started. In a case where an operation of the user indicating to reject to start the first data channel application on the first terminal is detected, the state of the first data channel application on the first terminal is maintained unchanged. For example, the first data channel application on the first terminal is in the background, and in a case where an operation of the user indicating to reject to start the first data channel application on the first terminal is detected, the first terminal maintains the first data channel application on the first terminal to continue to be in the background. This manner can realize that the first terminal sets the state of the first data channel application on the first terminal based on the will of the user.
[0032] In a possible implementation of the present application, the first request message includes a first state, and the first terminal updates the state of the first data channel application on the first terminal in response to the first request message, including: the first terminal updates the state of the first data channel application on the first terminal to the first state in a case where the first data channel application on the first terminal is not in the first state in response to the first request message. Alternatively, the first terminal outputs prompt information to prompt the user to agree / refuse to update the state of the first data channel application on the first terminal to the first state in a case where the first data channel application on the first terminal is not in the first state. In a case where an operation of the user indicating to agree 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. In a case where an operation of the user indicating to refuse 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 is maintained unchanged.
[0033] In a possible implementation of the present application, the method provided by the embodiment of the present application can further include that, in a case where the first terminal starts the first data channel application on the first terminal in response to the first request message, the first terminal can also output prompt information to prompt the user that the first data channel application has been started.
[0034] In a possible implementation of the present application, the method provided by the embodiments of the present application can further output prompt information to prompt that the status of the first data channel application on the first terminal has been updated to the first status in the case that the first terminal updates the status of the first data channel application on the first terminal to the first status in response to the first request message. In this way, the user can be informed of the latest status of the first data channel application.
[0035] In a third aspect, a communication apparatus is provided. The communication apparatus can implement the method in the first aspect or any possible implementation of the first aspect, and thus can achieve the corresponding benefits of the first aspect or any possible implementation of the first aspect. The communication apparatus can be the first device, or a chip applied in the first device and supporting the first device to implement the method in the first aspect or any possible implementation of the first aspect. The communication apparatus can implement the method by software, hardware, or by hardware executing corresponding software.
[0036] As an example, the communication apparatus can include a processing module and a communication module. The communication module is configured to perform the receiving / sending steps performed by the first device in the first aspect or any possible implementation of the first aspect. The processing module is configured to perform the processing steps performed by the first device in the first aspect or any possible implementation of the first aspect.
[0037] For example, when the communication apparatus is a chip or a chip system in the first device, the processing module can be a processor, and the communication module can be a communication interface, such as an input / output interface, a pin, or a circuit. The processing module executes instructions stored in a storage unit to implement the method for updating the application status in an IMS session described in the first aspect or any possible implementation of the first aspect. The storage unit can be a storage unit (such as a register or a cache) in the chip, or a storage unit (such as a read-only memory or a random access memory) in the first device and located outside the chip.
[0038] In a fourth aspect, a communication apparatus is provided. The communication apparatus can implement the method in the second aspect or any possible implementation of the second aspect, and thus can achieve the corresponding benefits of the second aspect or any possible implementation of the second aspect. The communication apparatus can be the first terminal, or a chip applied in the first terminal and supporting the first terminal to implement the method in the second aspect or any possible implementation of the second aspect. The communication apparatus can implement the method by software, hardware, or by hardware executing corresponding software.
[0039] As an example, the communication apparatus can comprise a processing module and a communication module, wherein the communication module is configured to perform the receiving / sending related steps performed by the first terminal in the second aspect or any possible implementation of the second aspect. The processing module is configured to perform the processing related steps performed by the first terminal in the second aspect or any possible implementation of the second aspect.
[0040] For example, when the communication apparatus is a chip or a chip system in the first terminal, the processing module can be a processor and the communication module can be a communication interface. The communication interface can be an input / output interface, a pin or a circuit, etc. The processing unit executes instructions stored in the storage unit, so that the first terminal implements the method for updating application state in an IMS session described in the first aspect or any possible implementation of the first aspect. The storage module can be a storage unit (e.g., a register, a cache, etc.) in the chip or a storage unit (e.g., a read-only memory, a random access memory, etc.) outside the chip in the terminal.
[0041] In a fifth aspect, an embodiment of the present application provides a communication system, comprising: a first device and a first terminal. The first device is configured to perform the method for updating application state in an IMS session described in the first aspect or various possible implementations of the first aspect. The first terminal is configured to perform the method for updating application state in an IMS session described in the second aspect or various possible implementations of the second aspect.
[0042] For example, the first device can be a second terminal or a DCMTSI client on the second terminal, or the first device can also be a Data Channel Signaling Function (DCSF) network element.
[0043] In a sixth aspect, an embodiment of the present application provides a computer program product comprising instructions which, when executed on a computer, cause the computer to carry out the communication method described in the first aspect or various possible implementations of the first aspect.
[0044] In a seventh aspect, an embodiment of the present application provides a computer program product comprising instructions which, when executed on a computer, cause the computer to carry out the communication method described in the second aspect or various possible implementations of the second aspect.
[0045] In an eighth aspect, an embodiment of the present application provides a computer readable storage medium, which stores a computer program or instructions, and when the computer program or instructions are executed on a computer, the computer performs the communication method described in the first aspect to any possible implementation of the first aspect. The computer can be the first device.
[0046] In a ninth aspect, an embodiment of the present application provides a computer readable storage medium, which stores a computer program or instructions, and when the computer program or instructions are executed on a computer, the computer is caused to perform the communication method described in any possible implementation manner of the second aspect to the second aspect. The computer can be the first terminal.
[0047] In a tenth aspect, an embodiment of the present application provides a communication apparatus for implementing various methods in various possible designs of the first aspect or any of the various possible designs of the first aspect. The communication apparatus can be the first device, or an apparatus including the first device, or a component (for example, a chip) applied to the first device. The communication apparatus includes modules or units for implementing the above methods, which can be implemented by hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the above functions. It should be understood that the communication apparatus described in the ninth aspect also includes a bus and a memory for storing codes and data. Optionally, the at least one processor is coupled to the memory through the bus.
[0048] In an eleventh aspect, an embodiment of the present application provides a communication apparatus for implementing various methods in various possible designs of the second aspect or any of the various possible designs of the second aspect. The communication apparatus can be the first terminal, or an apparatus including the first terminal, or a component (for example, a chip) applied to the first terminal. The communication apparatus includes modules or units for implementing the above methods, which can be implemented by hardware, software, or by hardware executing corresponding software. The hardware or software includes one or more modules or units corresponding to the above functions.
[0049] It should be understood that the communication apparatus described in the tenth or eleventh aspect also includes a bus and a memory for storing codes and data. Optionally, the at least one processor is coupled to the memory through the bus.
[0050] In a twelfth aspect, an embodiment of the present application provides a chip, which includes at least one processor, and the processor is configured to read and execute a computer program stored in a memory to perform the method in the first aspect or any possible implementation manner of the first aspect.
[0051] In a thirteenth aspect, an embodiment of the present application provides a chip, which includes at least one processor, and the processor is configured to read and execute a computer program stored in a memory to perform the method in the second aspect or any possible implementation manner of the second aspect.
[0052] Optionally, the chip further comprises a memory, and the memory is connected with the processor through a circuit or a wire.
[0053] Further optionally, the chip further comprises a communication interface. The communication interface is used for communicating with other modules outside the chip.
[0054] Any of the apparatuses, computer storage media, computer program products, chips or communication systems provided in the foregoing can be used to execute the corresponding methods provided in the foregoing, and thus have the beneficial effects of the corresponding solutions provided in the foregoing, which will not be repeated here. BRIEF DESCRIPTION OF DRAWINGS
[0055] Fig. 1 is a schematic diagram of a data channel between terminals in an IMS session provided by an embodiment of the present application;
[0056] Fig. 2 is a schematic diagram of a data channel protocol stack provided by an embodiment of the present application;
[0057] Fig. 3 is a data channel working process provided by an embodiment of the present application.
[0058] Fig. 4 is an architecture diagram of a communication system provided by an embodiment of the present application;
[0059] Fig. 5 is a system architecture diagram of IMSData Channel provided by an embodiment of the present application;
[0060] Fig. 6 is a DCMTSI client architecture diagram provided by an embodiment of the present application;
[0061] Fig. 7 is a flow diagram of a communication method provided by an embodiment of the present application;
[0062] Fig. 8 is a schematic diagram of a data channel creation process provided by an embodiment of the present application;
[0063] Fig. 9 is a specific flow diagram of starting a data channel application in an IMS session provided by an embodiment of the present application;
[0064] Fig. 10 is a specific flow diagram of another method for updating a data channel application state in an IMS session provided by an embodiment of the present application;
[0065] Fig. 11 is a specific flow diagram of another method for starting an application state in an IMS session provided by an embodiment of the present application;
[0066] Fig. 12 is a structure diagram of a communication apparatus provided by an embodiment of the present application;
[0067] Fig. 13 is a structure diagram of a communication device provided by an embodiment of the present application;
[0068] FIG. 14 is a structural schematic diagram of a chip according to an embodiment of the present application. DETAILED DESCRIPTION
[0069] The technical solutions in the embodiments of the present application will be described below with reference to the drawings in the embodiments of the present application. In the description of the embodiments of the present application, unless otherwise specified, " / " means "or", for example, A / B can mean A or B; "and / or" in the present application only describes the association relationship of the associated objects, which means that there can be three relationships, for example, A and / or B can mean that there are three cases of A alone, A and B together, and B alone. In addition, in the description of the embodiments of the present application, "multiple" means two or more than two.
[0070] Hereinafter, the terms "first" and "second" are only used for descriptive purposes, and cannot be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined with "first" and "second" can explicitly or implicitly include one or more features. In the description of the embodiments, unless otherwise specified, the meaning of "multiple" is two or more than two.
[0071] In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but can optionally include steps or units not listed, or can optionally include other steps or units inherent to the process, method, product or device.
[0072] In the embodiments of the present application, the words such as "exemplary" or "for example" are used to mean an example, illustration or description. Any embodiment or design scheme described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as more preferred or more advantageous than other embodiments or design schemes. On the contrary, the use of "exemplary" or "for example" and the like is intended to present the relevant concept in a specific manner, so as to facilitate understanding.
[0073] It should be understood that in the present application, "at least one" means one or more. "Multiple" means two or more than two. "At least two" means two or three and more than three. "And / or" is used to describe the association relationship of the associated objects, which means that there can be three relationships. For example, "A and / or B" can mean that there are three cases of A alone, B alone, and A and B together, where A and B can be singular or plural.
[0074] The character " / " generally indicates that the associated objects before and after are in an "or" relationship. "At least one of the following" or the like refers to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, c can be single or multiple.
[0075] "… when" and "if" both refer to the corresponding processing under certain objective conditions, not limited to time, and do not require judgment actions when implemented, nor imply the existence of other limitations.
[0076] Before introducing the embodiments of the present application, the related terms involved in the embodiments of the present application are first explained as follows:
[0077] 1. Internet protocol multimedia subsystem (IMS) session
[0078] IMS is a general network architecture for providing multimedia services on an internet protocol (IP) based network. The IMS session refers to a session established between people, people and things, or things and things for multimedia communication, for transmitting multimedia data between communication parties, such as data between terminals, and / or data between terminals and a communication network. The 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, which can transmit data between terminals; or it can be understood as a logical connection between a terminal and a communication network in multimedia communication, for transmitting data between the terminal and the communication network. In specific applications, the IMS session can be negotiated (or established) based on the Session Initiation Protocol (SIP) / Session Description Protocol (SDP). It should be understood that the IMS session can also be replaced by a communication session, an IMS communication session, a session, or a session of a call service, without limitation.
[0079] It can be understood that the multimedia communication can correspond to at least one IMS session. Taking the multimedia communication between the terminal 1 and the terminal 2 as an example, the multimedia communication corresponds to one IMS session, such as the IMS session between the terminal 1 and the terminal 2. Taking the multimedia communication between the terminal 1, the terminal 2 and the terminal 3 as an example, the multimedia communication corresponds to one IMS session, such as the IMS session between the terminal 1, the terminal 2 and the terminal 3; or the multimedia communication corresponds to three IMS sessions, such as the IMS session between the terminal 1 and the terminal 2, the IMS session between the terminal 1 and the terminal 3 and the IMS session between the terminal 2 and the terminal 3.
[0080] The network architecture of the 5G new call is upgraded based on the existing IMS architecture, and aims to support the scale development of interactive multimedia services and support industry / enterprise efficient, fast and safe access to the IMS network. In order to realize the business innovation of the 5G new call scene, a data channel (DC) is newly introduced in the IMS network in addition to the original audio channel and video channel in 3GPP R16, as shown in FIG. 1.
[0081] It can be understood that in order to transmit various types of data, a channel for transmitting the corresponding type of data can be established in the IMS session. Exemplarily, according to the data type, the channel can be divided into a media channel and a data channel. In some scenarios, the media channel can be further divided into an audio channel and a video channel. Among them, the audio channel can be used to transmit voice, the video channel can be used to transmit video, and the data channel can be used to transmit any data other than voice and video. Of course, the data channel can also transmit voice and / or video, which is not limited.
[0082] Exemplarily, as shown in FIG. 1, the terminal 1 and the terminal 2 can communicate through the IMS network, and the IMS session between the terminal 1 and the terminal 2 includes a data channel, an audio channel and a video channel. It should be understood that FIG. 1 is only an example of the IMS session, and in specific applications, the IMS session can include a data channel, but not an audio channel and a video channel, or the IMS session includes at least one of an audio channel and a video channel, and a data channel, which is not limited.
[0083] 2. Protocol stack of IMS session
[0084] The protocol stack of an IMS session is used to indicate the sum of media transport protocols applicable to the IMS session, which can reflect the transmission process of data in the IMS session. The IMS session can transmit voice, video, text and data other than voice, video and text. Therefore, in order to match the transmission requirements of different types of data, different protocols can be configured for the channels of different types of data. For example, the protocol stack of an IMS session can be as shown in FIG. 2. In FIG. 2, the protocol at the bottom layer of the audio channel, the video channel and the data channel is IP, and above the IP is the User Datagram Protocol (UDP). For the above channels, the protocols above the UDP are different, which are described below respectively. For the audio channel or the video channel, above the UDP is the real-time transport protocol (RTP) or the RTP control protocol (RTCP), the RTP can encapsulate the payload of voice, video or text, and above the RTP is the conversational multimedia application, and above the RTCP is also the conversational multimedia application. For the data channel, above the UDP is the DTLS protocol, above the DTLS protocol is the SCTP, the SCTP can encapsulate the information that the data channel can transmit, such as application data or application program, and above the application data or application program is the conversational multimedia application.
[0085] It can be understood that FIG. 2 is only an example of the media transport protocol stack of an IMS session, and in specific applications, the protocol stack of an IMS session can also be in other forms. For example, the protocol stack of an IMS session can not include the DTLS protocol.
[0086] 3. Data channel
[0087] The data channel in the embodiments of the present application, also referred to as an IMS data channel, is a data channel in an IMS, and can be used to transmit data based on a stream control transmission protocol (SCTP). That is, the data channel is a logical channel or data connection based on the transmission of data by the SCTP. Exemplarily, the data channel can provide users with richer real-time interactive services in addition to audio and video calls. For example, terminals (such as terminal 1 and terminal 2 in FIG. 1) in the same IMS session service determine, through an SIP / SDP media negotiation process of the IMS, an IP address and a port used by the terminals to transmit data, key information required for establishing a datagram transport layer security (DTLS) coupling and an SCTP coupling, and description information corresponding to the data channel, thereby establishing one or more data channels (such as the data channel shown in FIG. 1) in parallel with audio (Speech) and video (Video) transmission in the IMS session. Terminal 1 and terminal 2 can download various applications (DC App) from a network-side DCSF through the data channel, and run the applications before, during, or after an audio and video call, thereby enabling terminal 1 and terminal 2 to communicate in addition to voice calls or video calls, such as screen sharing, real-time translation, location sharing, superimposed AR special effects, and even immersive interactions with synchronized hearing, vision, and touch, to improve user experience.
[0088] The data channel can provide users with richer real-time interactive services, and enable the transmission of multimedia information such as text, pictures, and videos before, during, and after a call, including but not limited to content captured by a camera of a user device, information generated by a like, and information generated by the sending of a red envelope. According to different uses of the data channel, the data channel can be divided into two types, a bootstrap data channel (BDC) and an application data channel (ADC).
[0089] BDC: The terminal acquires the application program required in real-time communication through the BDC, that is, the data channel application, which can also be referred to as the IMS data channel application (IMS DC APP). The terminal supporting the data channel capability can establish the BDC with the call originating network and / or the call terminating network. Depending on the capabilities of the networks, including the service subscriptions of the terminals of both parties in the respective networks. The data can be transmitted through the BDC using the hypertext transfer protocol (HTTP) protocol. The stream ID of the BDC is less than x. For example, x = 1000. The terminal 1 and the terminal 2 can download various applications (i.e., DC App) from the network side DCSF through the data channel, and run these applications before, during or after the audio / video call, and transmit various types of application data of these applications in the data channel, so that the terminal 1 and the terminal 2 can communicate in addition to voice calls or video calls, such as screen sharing, real-time translation, location sharing, superimposed AR special effects, and even auditory, visual, and tactile synchronous immersive interactions, to improve user experience. The terminal supporting the data channel capability can establish the BDC with the DCSF of the call originating network and / or the DCSF of the call terminating network. The specific manner depends on whether the respective networks support the data channel capability, and the service subscriptions of the terminal devices of both parties in the respective networks. In addition, the BDC can only transmit data using the hypertext transfer protocol (HTTP), and the stream ID of the BDC is less than 1000.
[0090] ADC: Used to transmit the interactive data / application data generated by the running IMS data channel application of both parties. The application logic control in the BDC transmits the dynamic application data in the ADC. The ADC transmission can be transmitted between terminals and terminals, or between terminals and networks, and the network side provides rich, web-based real-time interactive experience enhancement content for users. Any protocol can be used to transmit data through the ADC, and the stream ID of the ADC is greater than or equal to x. The ADC is used to transmit the interactive data generated by the running DC App of both parties. In the P2P scenario, the ADC is established between the terminal devices of both parties, and at this time the ADC is used to transmit the interactive data generated by the running DC App of the terminal devices of both parties. In addition, the ADC can transmit data using any protocol, and the stream ID of the ADC is greater than or equal to 1000.
[0091] According to the relationship between the data channel and the audio / video call, the data channel can be classified into an additional data channel and an independent data channel.
[0092] (1) In an IMS session process, when there is an audio call or a video call between the terminal and other session participants (which can be another terminal or a network element), there is also a data channel, which can be referred to as an auxiliary data channel or a dependent data channel.
[0093] (2) In an IMS session process, when there is only a data channel between the terminal and other session participants, and there is no traditional voice call or video call, the data channel can be referred to as a standalone data channel or an independent data channel.
[0094] For example, the application data transmitted by the data channel can be interactive application data, referred to as interactive data. The interactive application data can be application data for supporting interactive operations (such as data or code / scripts for generating a graphical user interface (GUI) for user interactive operations, such as a "like" button, a "red envelope" button), can be application data generated by performing the interactive operation (such as control instructions, control signals, or output files generated after a session participant performs an interactive operation, such as the number of "likes" or the amount of money in a "red envelope"), or can be data collected or stored by the terminal, such as data collected by an input / output (I / O) module, such as images or videos captured by a camera, voice collected by a microphone, text or symbols or emoticons input by a keyboard, or data generated by clicking / sliding on a touch screen.
[0095] Exemplarily, the application data transmitted by the data channel can also be communication enhancement application data (communication enhancement data) for short; the communication enhancement data can be data generated based on the content of the audio call / video call, such as converting the voice in the audio call / video call into text, or converting the sign language in the video call into text or voice, can also be data superimposed on the basis of the audio call / video call, such as AR special effect pictures, and can also be data independent of the audio call / video call, such as geographic location data, screen sharing data, and the like.
[0096] Exemplarily, the application data transmitted by the data channel can also be a remote control command, which can provide a user with a remote control service or a remote Internet of Things (IoT) device connection service. It can be understood that in the above case, the data channel can also be used to transmit a remote control command.
[0097] Exemplarily, the application program transmitted by the data channel can be an installation package, executable code or script of an application program, which can be an interactive enhancement application or a communication enhancement application for enhancing the interactive effect / communication effect of a traditional voice call / video call, or a remote control application / IoT communication application, and the present application does not make any limitation.
[0098] The IMS data channel does not focus on the content and format of the content delivered in the channel, and only needs to reach an agreement on the communication format between the two parties of the communication, and deliver diversified application content in the data channel through mature Internet technologies such as a Web interface or an applet, thereby supporting the rapid innovation, rapid deployment and rapid online of 5G new call services.
[0099] 4. Data channel application (data channel application, DC App)
[0100] The data channel application described in the embodiments of the present application is used for transmitting additional communication information through the data channel between multiple terminals in the same IMS call service.
[0101] As an example, the additional communication information can include at least one of the following: content captured by a camera of the user equipment, information generated by a thumb up, information generated by sending a red packet, desktop sharing content, a mark drawn by the user on the screen, a text message input by the user, picture information input by the user, geographic location information, or video content in a video file, etc. The information can be generated or consumed by any one of the calling terminal device or the called terminal device, or can be generated or consumed by a device connected to the calling terminal device or the called terminal device. In the embodiments of the present application, the additional communication information can be transmitted (sent or received) by a data channel application on a terminal of a participant of an IMS session through a data channel, and corresponding processing (presentation, control, etc.) is performed.
[0102] As an example, the data channel application is a Web content containing hypertext markup language (HTML), Java Script scripts, and pictures, cascading style sheets (CSS), describes a graphical user interface (UI), and can implement interactive business logic.
[0103] The data channel application is usually downloaded by a call application on the terminal from the network side and runs during the duration of the IMS call, and does not need to be installed and uninstalled. It can be understood that the data channel application can exist in the form of a Web page, or in the form of an applet / quick app / light app, etc., which is not limited in the present application.
[0104] By way of example, the data channel application involved in the embodiments of the present application can be a DC App in a 4G / 5G network. The DC App can deliver various data such as text, pictures, locations, files, etc. before and after the establishment of an IMS call, to realize communication between the two parties of the call in addition to voice calls or video calls, and can greatly enhance the experience of the two parties of the call.
[0105] In the embodiments of the present application, a data channel application can be installed on the terminal. The working process of the data channel application will be described below:
[0106] The working process of the data channel application will be briefly introduced below in combination with the working process shown in FIG. 3, taking UE A and UE B as an example of a calling terminal and a called terminal respectively.
[0107] 1. The developer completes the development of the IMS data channel application through an offline process, and then uploads the developed IMS data channel application to a data channel server (DCS) of an operator.
[0108] 2. DCS stores IMS data channel application to Data Channel Application Repository (DCAR).
[0109] 3. DCS downloads IMS data channel application from DCAR when needed.
[0110] 4. UE A establishes BDC with DCS and gets required IMS data channel application from DCS through BDC.
[0111] 5. UE B establishes BDC with DCS and gets required IMS data channel application from DCS through BDC.
[0112] 6. UE A and UE B establish ADC for transmitting interactive data of the IMS data channel application.
[0113] For example, a terminal can get a DC App from DCSF through BDC in HTTP procedure, and can update it automatically or interactively at any time, and then communicate with a peer terminal device through the DC App, in addition to voice call or video call. UE A and UE B are in the same IMS call service. Assuming that UE A wants to share its own mobile phone screen with UE B to guide B to set up the mobile phone during the call with UE B, UE A and UE B can first get the IMS data channel application for screen sharing respectively, and then run the application to interact with the peer UE in real time.
[0114] 5. Form and life cycle management of data channel application
[0115] The form and life cycle management of data channel application will be described as follows:
[0116] According to GSMA TS.66 IMS Data Channel API Specification, the IMS data channel application can exist in the form of a web page (running in a browser environment, i.e., the UI mode of an HTML web page) or in the form of an applet / quick app / light app, etc.
[0117] According to W3C, web pages and applets have their own life cycle management mechanisms.
[0118] The life cycle management of a web page is divided into six stages, as shown below.
[0119] Active: The web page is in a visible state and has input focus.
[0120] Passive: The page is visible, has no input focus, and cannot accept input. UI updates (such as animations) are still being performed. This can only occur when there are multiple windows open on the desktop.
[0121] Hidden: The page is not visible, but has not been frozen. UI updates are no longer being performed.
[0122] Terminated: The current page is being unloaded by the browser and removed from memory because the user actively closed the window, or navigated to another page in the same window. This phase occurs after the Hidden phase, and the user actively leaves the current page, always entering the Hidden phase first, and then the Terminated phase. This node causes the page to be unloaded, no new tasks can be started in this phase, and ongoing tasks may be terminated if they run too long.
[0123] Frozen: If the page is in the Hidden phase for too long, and the user does not close the page, the browser may freeze the page, causing it to enter the Frozen phase. However, it is also possible that a page in the visible state will enter the Frozen phase if it has not been interacted with for a long time. In this phase, the page will no longer be allocated CPU resources. Timers, callbacks, network requests, and DOM operations will not be performed, but ongoing tasks will be completed. The browser may allow the page in the Frozen phase to periodically revive for a short period of time, briefly returning to the Hidden state and allowing a small amount of tasks to be executed.
[0124] Discarded: If the page is in the Frozen phase for too long, and the user does not wake up the page, it will enter the Discarded phase, where the browser automatically unloads the page and clears its memory usage. Alternatively, a page in the Passive phase may directly enter the Discarded phase if it has not been interacted with for a long time. Generally, this is enforced by the system without user intervention. No new tasks or JS code of any type can be executed in this phase, as it is usually in a resource-limited situation. After the page is automatically discarded by the browser, its Tab window is still present. If the user re-visits this Tab page, the browser will make a new request to the server and reload the page again, returning to the Active phase.
[0125] According to the W3C Mini-Program Life Cycle Management Specification defined in the Mini-Program Technical Standard White Paper, the life cycle management of a mini-program is divided into five phases:
[0126] Launched indicates that the applet is loaded and started.
[0127] Shown indicates that the applet is in the foreground state, which usually enters after the applet enters Launched, or when the applet switches from the background to the foreground.
[0128] Hidden indicates that the applet is in the background state.
[0129] Error indicates that the applet is in an error state.
[0130] Unloaded indicates that the applet is unloaded.
[0131] The data channel application running environment on the terminal usually only allows one data channel application to run, i.e., only one data channel application can be in the foreground. When the user downloads the data channel application and uses it, the user may choose to close or switch the application to the background. Or, when there are multiple data channel applications in an IMS session, after a new data channel application is started, the original data channel application will be closed or switched to the background.
[0132] For real-time interaction type data channel applications of person to person (P2P), such as screen sharing or AR annotation, both parties of the call need to have the data channel application in the foreground to run normally.
[0133] For person to application (P2A) type services, such as real-time translation, when the server sends the real-time translation result to the terminal, if the data channel application is not started, the service cannot run normally.
[0134] Usually, to avoid frequent signaling negotiation, the data channel corresponding to the data channel application in the background or closed will not be closed. Then, when the terminal initiates a service again, it will not initiate media renegotiation to notify the opposite UE that the service has been started. At this time, if the data channel application on the opposite UE is not in the foreground, the service may not run normally. Or, when the server initiates a service, if the data channel application on the UE is not in the foreground, the service cannot run normally.
[0135] Based on this, the communication method provided in the embodiments of the present application, 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, the other terminal can be requested to wake up the first data channel application on the terminal or update the state of the first data channel application on the terminal to a specified state through the first data channel, so that the situation that the service cannot normally run due to the life cycle management of the first data channel application in the IMS session process can be avoided.
[0136] The technical solutions provided in the present application can be applied to various communication systems, such as a 5th generation (5G) communication system (or a new radio (NR) system), a 4th generation (4G) communication system (or a long term evolution (LTE) system), an LTE frequency division duplex (FDD) system, an LTE time division duplex (TDD) system, and the like. The technical solutions provided in the present application can also be applied to future communication systems, such as a 6th generation (6G) mobile communication system.
[0137] As shown in FIG. 4, (a) in FIG. 4 is an architecture diagram of a communication system provided in the embodiments of the present application, which includes a terminal 100 and a terminal 200. The terminal 100 and the terminal 200 communicate through an IP multimedia subsystem (IMS) network. For example, the terminal 100 and the terminal 200 can establish an IMS session. That is, the terminal 100 and the terminal 200 are two devices in the same IMS session. The IMS session can also be referred to as an IMS call or an IMS call.
[0138] The first data channel is included in the IMS session between the terminal 100 and the terminal 200. The IMS data channel application A can be installed on the terminal 100 and the terminal 200. For ease of description, the IMS data channel application A can be referred to as the data channel application A.
[0139] For example, any one of the terminal 100 and the terminal 200 (which can be referred to as a calling party) can initiate an IMS session establishment request (such as an initial invite request message) to the other terminal (which can be referred to as a called party) through the IMS network to request to establish an IMS session between the terminal 100 and the 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 the terminal 100 and the terminal 200.
[0140] For example, the first data channel between the terminal 100 and the terminal 200 can also be referred to as a coordination data channel (CDC), and of course the first data channel between the terminal 100 and the terminal 200 can also be a BDC between the terminal 100 and the terminal 200.
[0141] The first data channel between the terminal 100 and the terminal 200 is used for the terminal 100 and the terminal 200 to request the opposite terminal to change the application state of the data channel. For example, the terminal 100 can send a first request message to the terminal 200 through the CDC. The first request message requests the terminal 200 to start / wake up the data channel application A on the terminal 200. Or the first request message requests to update the state of the data channel application A on the terminal 200 to a first state. For example, the first state can be a start state, or a close state, which is not limited by the embodiments of the present application.
[0142] It can be understood that the data channel application A on the terminal 100 is any one of the plurality of data channel applications installed on the terminal 100. The data channel application A on the terminal 200 is any one of the plurality of data channel applications installed on the terminal 200.
[0143] The first data channel between the terminal 100 and the terminal 200 can be established for the terminal, or can be a data channel shared by different data channel applications on the terminal 100 or the terminal 200, that is, the CDC is used to transmit the start request message or the state update request message of different data channel applications on the terminal 100 or the terminal 200.
[0144] As an example, as shown in (a) of FIG. 4, optionally, the terminal 100 and the terminal 200 can establish an ADC in addition to the CDC in the IMS session. The ADC established between the terminal 100 and the terminal 200 is used to transmit the interaction data of the IMS data channel application A.
[0145] Optionally, any one of the terminal 100 or the terminal 200 can also establish a BDC with the DCS in the IMS session. The BDC of the terminal 100 is used to support the terminal 100 to obtain the required IMS data channel application from the DCS, for example, the data channel application A. The BDC of the terminal 200 is used to support the terminal 200 to obtain the required IMS data channel application from the DCS, for example, the data channel application A.
[0146] As an example, the type of the data channel application A respectively installed on the terminal 100 and the terminal 200 can be a P2P type data channel application, or a P2A type data channel application.
[0147] P2P application refers to an application program allowing users to share and exchange data directly with each other instead of through a centralized server. For example, P2P type real-time interactive data channel applications can include screen sharing, AR annotation, and the like.
[0148] P2A type application refers to a communication mode in which a node directly accesses an application program through a network connection. In this mode, the node does not need to be mediated by an "intermediary" and directly communicates with the application program, thereby achieving fast and efficient transmission of information. For example, P2A (Person to Application) type data channel applications can include real-time translation and the like.
[0149] As an example, the system shown in (a) of FIG. 4 can also include a DCS 300. The terminal 100 and the terminal 200 can each establish a BDC with the DCS 300 and obtain the required IMS data channel application, such as data channel application A, from the DCS 300 through the BDC.
[0150] For example, the terminal 100 and the terminal 200 are in the same IMS session. Assuming that the user of the terminal 100 wishes to share his / her phone screen with the terminal 200 to guide the terminal 200 to set up the phone while the terminal 100 and the terminal 200 are communicating using the IMS session, the terminal 100 and the terminal 200 can first obtain the IMS data channel application A for screen sharing and then run the IMS data channel application A to perform real-time data interaction with the opposite terminal.
[0151] For example, the terminal 100 needs to translate the voice of the terminal 200 into text or another language during a call with the terminal 200. Then, the terminal 100 needs to first obtain the IMS data channel application A for real-time translation. After the IMS network receives the audio information from the terminal 200, it translates the audio information into text or another language and displays the translated information on the terminal screen or plays it out in voice through the IMS data channel application A.
[0152] (b) of FIG. 4 is a diagram of a communication system architecture provided by an embodiment of the present application, which includes a terminal 400 and a data channel signaling function network element (DCSF) 500. The terminal 400 and the data channel signaling function network element (DCSF) 500 communicate through an IP multimedia subsystem (IMS) network.
[0153] The terminal 400 establishes a first data channel with the DCSF 500. The terminal 400 is installed with an IMS data channel application A. The DCSF 500 is configured to provide data channel signaling control function.
[0154] The DCSF 500 can send a first request message to the terminal 400 through the first data channel, where the first request message requests to wake up / start the data channel application A on the terminal 400.
[0155] As shown in (b) of FIG. 4, optionally, the system can further include a data channel application server (DC AS) 600 configured to provide data channel service logic. There is an IMS session between the terminal 400 and the DC AS 600. The terminal 400 establishes an ADC with the DC AS 600.
[0156] As an example, for a P2A scenario, the DC AS 600 invokes the service provided by the DCSF 500 to request to wake up the data channel application A installed on the terminal 400.
[0157] The network architecture applied to the embodiments of the present application is only an example, and the network architecture applicable to the embodiments of the present application is not limited thereto. Any network architecture capable of realizing the functions of the above-mentioned network elements is applicable to the embodiments of the present application. That is, the network architecture and service scenarios described in the embodiments of the present application are for more clearly illustrating the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. It can be understood by those skilled in the art that, as the network architecture evolves and new service scenarios appear, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems. It can also be understood that the network elements or devices listed in the above network architecture are only exemplary, and the network architecture applicable to the present application can also include other network elements or devices, which are not limited by the present application. It can also be understood that the naming of the above-mentioned network elements or devices is only defined for the convenience of distinguishing different functions, and should not constitute any limitation on the present application. The present application does not exclude the possibility of using other names in 4G networks, 5G networks and future other networks. For example, in a 6G network, part or all of the above-mentioned network elements can use the terms in 4G / 5G, or other names, etc.
[0158] The terminal can be any electronic device with a call function. Exemplarily, the terminal is a user equipment (UE), which can be any device capable of accessing a network, and can also be referred to as a terminal device, a terminal apparatus, an access terminal, a subscriber unit, a subscriber station, a mobile station, a mobile station (MS), a mobile terminal (MT), a remote station, a remote terminal, a mobile device, a user terminal, a terminal, a wireless communication device, a user agent, or a user device, etc. The UE can be a device that provides voice / data connectivity to a user, such as a handheld device with wireless connection function, a vehicle-mounted device, etc. Currently, some examples of the terminal can be: a mobile phone, a tablet computer, a computer with wireless transceiver function (such as a notebook computer, a palm computer, etc.), a mobile internet device (MID), a virtual reality (VR) device, an AR device, a wireless terminal in industrial control, a wireless terminal in self driving, a wireless terminal in remote medical treatment, a wireless terminal in smart grid, a wireless terminal in transportation safety, a wireless terminal in smart city, a wireless terminal in smart home, a cellular phone, a cordless phone, a session initiation protocol (SIP) phone, a wireless local loop (WLL) station, a personal digital assistant (PDA), a handheld device with wireless communication function, a computing device or other processing device connected to a wireless modem, a vehicle-mounted device, a wearable device, a terminal device in a 4G / 5G network, or a terminal device in a future evolved public land mobile network (PLMN), etc.
[0159] It should be understood that the terminal in the embodiments of the present application can also be a terminal device in the Internet of Things, a port, an intelligent factory, railway transportation, logistics, a drone, a self-driving car, and other vertical industry application fields. For example, a mobile robot, an automated guided vehicle (AGV), a self-driving car, a control device and a sensor on a train, a control device and a sensor deployed in a factory, and the like.
[0160] In addition, the terminal can also be a terminal in an Internet of Things (IoT) system. The IoT is an important component of future information technology development, and its main technical feature is to connect objects through communication technology and a network, thereby realizing an intelligent network of human-machine interconnection and object-object interconnection. IoT technology can achieve massive connections, deep coverage, and terminal power saving through, for example, narrow band (NB) technology. In addition, the terminal can also include a smart printer, a train detector, and the like, and the main functions include collecting data (for some terminal devices), receiving control information and downlink data of a network device, and transmitting electromagnetic waves to transmit uplink data to the network device. Alternatively, the terminal can be used to act as a base station. For example, a user equipment can act as a scheduling entity that provides sidelink signals between user equipments in vehicle to everything (V2X) or device to device (D2D), and the like. For example, a cellular phone and a car communicate with each other using sidelink signals. A cellular phone and a smart home device communicate without relaying communication signals through a base station.
[0161] As an example, as shown in FIG. 5, the system shown in FIG. 4 is an architecture of an IMS network. In embodiments of the present application, the IMS network can be a collection of devices that handle voice and multimedia traffic, and can also be understood as a collection of servers that handle audio and video and multimedia traffic. The IMS network can 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), and the like. As shown in FIG. 5, the system architecture of the IMS network includes: terminal A and terminal B, a proxy-call session control function (P-CSCF) network element, an IMS-access media gateway (AGW), a media function (MF), a remote (Remote) IMS, an interrogating-call session control function (I-CSCF), a serving-call session control function (S-CSCF), which can be referred to as I / S-CSCF, an IMS application server (AS), an IMS home subscriber server (HSS), a DCSF, a network exposure function (NEF) entity, and a DC AS. Among them, the UE is connected with the proxy-call session control function (P-CSCF), and the P-CSCF is connected with the IMS-AGW. The IMS-AGW is connected with the MF and the remote (Remote) IMS. The MF is connected with the IMS AS, the DC AS, and the DCSF. The DCSF is further connected with the IMS HSS, and the IMS HSS is further connected with the I / S-CSCF and the IMS AS.
[0162] In FIG. 5, the terminal A and the terminal B can communicate through an IMS network, which is both a call originating network and a call terminating network. Either of the terminal A and the terminal B can be a calling terminal, and the other can be a called terminal. For example, the terminal A can be a calling terminal, and the terminal B can be a called terminal, or the terminal A can be a called terminal, and the terminal B can be a calling terminal. The IMS network includes a data channel application server (DC AS), an NEF entity and a DCS in communication connection with the DC AS, an IMS entity and an IMS AS in communication connection with the DCS, a call session control function (CSCF) entity in communication connection with the IMS AS and an IMS HSS entity, and an IMS AGW in communication connection with the CSCF entity.
[0163] The DCS can include a DCSF entity and an MF entity. Optionally, the DCS further includes a data channel application repository (DCAR) entity. FIG. 5 shows that the DCSF and the DCAR are deployed on the same entity, and the MF is separately deployed on an entity. In a specific application, the deployment manners of the DCSF, the DCAR, and the MF are not limited. For example, the DCSF, the DCAR, and the MF can be separately deployed on different entities, or at least two of the DCSF, the DCAR, and the MF are deployed on the same entity.
[0164] The CSCF entity is a functional entity inside the IMS. It is mainly responsible for processing signaling control in a multimedia call session process. It can manage user authentication of the IMS, quality of service (QoS) of an IMS bearer plane, control of a SIP session in cooperation with other network elements, service negotiation, and resource allocation, etc. According to different functions, the CSCF entity can be divided into a proxy CSCF (P-CSCF) entity, an interrogating CSCF (I-CSCF) entity, a serving CSCF (S-CSCF) entity, etc. FIG. 5 shows that the I-CSCF and the S-CSCF are deployed on the same entity, and the P-CSCF is separately deployed on an entity. In a specific application, the deployment manners of the I-CSCF, the S-CSCF, and the P-CSCF are not limited. For example, the I-CSCF, the S-CSCF, and the P-CSCF can be separately deployed on different entities, or at least two of the I-CSCF, the S-CSCF, and the P-CSCF are deployed on the same entity.
[0165] It can be understood that the communication system can be applied to the communication scenario shown in FIG. 5. For example, the terminal 100 is terminal A, and the terminal 200 is terminal B. Terminal A and terminal B can negotiate the state applied by the data channel on terminal A and terminal B through the CDC. Alternatively, terminal 400 and IMS AS (or DCSF entity) can negotiate the state applied by the data channel on terminal 400.
[0166] Corresponding to the flowchart of FIG. 3, the DCS can include a data channel signaling function (DCSF) entity and a media function (MF) entity. Optionally, the DCS further includes a data channel application repository (DCAR) entity. The above figure shows that the DCSF and the DCAR are deployed on the same entity, and the MF is separately deployed on an entity. In specific applications, the deployment manner of the DCSF, the DCAR and the MF is not limited. For example, the DCSF, the DCAR and the MF can be separately deployed on different entities, or at least two of the DCSF, the DCAR and the MF are deployed on the same entity.
[0167] In addition, it should be noted that the BDC is a connection established between the UE and the DCSF, and the ADC can be a P2A type connection established between the UE and the DC AS, or a P2P type connection established between the UE and the UE.
[0168] In the 3GPP TS26.114 standard, the IMS multimedia telephone service originally provided by the terminal is called MTSI client (Multimedia Telephony Service for IMS), and the MTSI client supporting the DC is called DCMTSI client (Data Channel Multimedia Telephony Service for IMS). The architecture of the DCMTSI client is shown in FIG. 6:
[0169] In FIG. 6, the DCMTSI client includes a packet-based network interface, and audio decoders, video decoders, text media (hereinafter referred to as text media 1) for processing downlink data, a data channel module (hereinafter referred to as data channel module 1) for processing downlink data, a session creation and control module, a data channel module (hereinafter referred to as data channel module 2) for processing uplink data, an audio encoder, a video encoder, and text media (hereinafter referred to as text media 2) for processing uplink data connected thereto. Among them, the packet-based network interface can be implemented through the protocol stack in FIG. 2.
[0170] The packet-based network interface can communicate with a 3GPP network using a 3GPP L2 protocol for media transmission. The 3GPP L2 protocol includes a packet data convergence protocol (PDCP) or a service data adaptation protocol (SDAP). For example, the DCMTSI client can receive media data from the network side or send media data to the network side through the packet-based network interface.
[0171] It can be understood that the audio encoder can encode the sound collected by the microphone and send the encoded audio through the packet-based network interface for receiving by another DCMTSI client. The other DCMTSI client can decode the encoded audio by an audio decoder and play the audio through a speaker. The video encoder can encode the image captured by the camera and send the encoded image through the packet-based network interface for receiving by another DCMTSI client. The other DCMTSI client can decode the encoded image by a video decoder and render the image on a display. The text media 2 can obtain the characters input on a keyboard or drawn on a screen and send the character information through the packet-based network interface for receiving by another DCMTSI client. The other DCMTSI client can render the character information on a display in real time. In addition, the encoded audio, the encoded image, and the character information can be sent through the packet-based network interface after being activated. Activation is an operation performed on a pre-opened user, which will make the user enter a normal state and can start using the services provided by the operator.
[0172] It can be understood that the audio decoder is used to decode the audio data received through the packet-based network interface, and the decoded audio can be played through a speaker. The video decoder is used to decode the image received through the packet-based network interface and render the image on a display. The text media 1 is used to process the character information received through the packet-based network interface, and the processed characters can be rendered on a display in real time. It should be understood that the decoded audio, the decoded image, and the processed characters can be played or displayed after being synchronized.
[0173] It can be understood that, for other multimedia telephone session related data used for real-time interaction, any codec is not required, which can be generated or consumed by the DCMTSI client. For example, the data can be sent through the packet based network interface after being processed by the data channel module 2, or the data can be controlled by the data channel module 1 to play corresponding sound through a speaker, display corresponding image through a display, or present corresponding effect on a user interface. In addition, the user interface can receive interaction data through the downlink data channel, interact with the Web interface and related scripts, and need to be synchronized with the voice, video and text data received by the user to process the data channel I / O and data formatting.
[0174] It can be understood that the DCMTSI client includes a data channel application running 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, and the data channel application running environment can be implemented by the OS or in a manner of integrating a third party SDK. The data channel application running environment provides an API for a data channel application, and the data channel application implements functions such as creating a DC and sending data through the DC by calling the API. The GSMA IMS DCAS (IMS Data Channel API Specification) working group is defining an API specification TS.66 of the DCMTSI client for the data channel application.
[0175] In the embodiments of the present application, the specific structure of the execution subject of the communication method is not particularly limited, as long as the communication method according to the embodiments of the present application can be performed by running a program in which the code of the communication method according to the embodiments of the present application is recorded. For example, the execution subject of the communication method provided by the embodiments of the present application can be a functional module capable of calling and executing a program in the first device, or a communication device applied to the first device, such as a chip, a chip system, an integrated circuit, and the like. These chips, chip systems, and integrated circuits can be arranged inside the first device or can be independent of the first device, which is not limited in the embodiments of the present application. The execution subject of the communication method provided by the embodiments of the present application can be a functional module capable of calling and executing a program in the first terminal, or a communication device applied to the first terminal, such as a chip, a chip system, an integrated circuit, and the like. These chips, chip systems, and integrated circuits can be arranged inside the first terminal or can be independent of the first terminal, which is not limited in the embodiments of the present application. The following embodiments are described by taking the execution subject of the communication method as the first device and the first terminal, respectively. In the case of no conflict, the schemes of the following embodiments can be combined for use.
[0176] As shown in FIG. 7, FIG. 7 is a flow diagram of a communication method provided by an embodiment of the present application, the method comprising:
[0177] In step 701, a first data channel is established between the first device and the first terminal.
[0178] As an example, the first data channel can also be referred to as CDC. The first data channel is used to transmit a first request message. The first request message can be a request message for starting a data channel application or a status update request message for updating the status of a data channel application.
[0179] As an example, the first terminal and the first device are both network elements in an IMS network. In a P2P scenario, the first device can be a second terminal or a DCMTSI Client on the second terminal. For example, in combination with FIG. 4, the first device can be the terminal 100 in (a) of FIG. 4, and the first terminal can be the terminal 200 in (a) of FIG. 4.
[0180] It can be understood that an IMS session can be established between the first terminal and the first device in the IMS network. Taking the first device as the second terminal as an example, the data channel creation request of the first data channel can be initiated by the party that initiates the establishment of the IMS session between the first device and the first terminal. For example, any one of the first terminal and the second terminal can initiate an IMS session establishment request to the opposite terminal to request the establishment of an IMS session with the opposite terminal. Assuming that the first terminal is the party that initiates the IMS session establishment request, the first terminal can also initiate a data channel creation request for establishing the first data channel to the second terminal.
[0181] Optionally, the IMS session can also include an ADC established between the first terminal and the second terminal. Any one of the first terminal and the second terminal can initiate a request message for establishing the ADC to the opposite terminal to request the establishment of the ADC with the opposite terminal. Assuming that the first terminal is the party that initiates the request message for establishing the ADC, the first terminal can also initiate a data channel creation request for establishing the first data channel to the second terminal.
[0182] Optionally, the IMS session can 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 any one of the first terminal and the second terminal initiates a request message for establishing the BDC to the DCS, the other terminal of the first terminal and the second terminal can also be initiated a data channel creation request for establishing the first data channel.
[0183] As an example, the first data channel can be closed when the IMS session between the first device and the first terminal ends.
[0184] As an example, the first data channel can be indicated by a stream ID or specified by a specific APP ID. As an example, the stream ID of the first data channel is 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 the CDC, the BDC or the ADC by the stream ID of the data channel.
[0185] For example, the first terminal includes three data channels in the IMS session, the three data channels are the ADC, the BDC and the CDC respectively, the stream ID of the ADC can be a, the stream ID of the BDC can be b, and the stream ID of the CDC can be c. The first terminal can distinguish the purpose or type of each data channel according to the stream ID of each data channel. For example, if the stream ID of a data channel is c, the first terminal can determine that the type of the data channel is the CDC and the data channel can be used to transmit the first request message. If the stream ID of a data channel is b, the first terminal can determine that the type of the data channel is the BDC and the data channel can be used to download the data channel application.
[0186] It is worth noting that the above b can be a specific value or a value interval in the value range of the stream ID corresponding to the BDC agreed by the protocol. For example, assuming that the value range of the stream ID corresponding to the BDC agreed by the protocol is less than 1000, b can be 900 or b can be 400-900.
[0187] The above a can be a specific value or a value interval in the value range of the stream ID corresponding to the ADC agreed by the protocol. The above c can be a specific value or a value interval in the value range of the stream ID corresponding to the CDC agreed by the protocol.
[0188] The following will describe the timing of establishing the CDC between the terminal 100 and the terminal 200 in the P2P scenario when the first terminal and the second terminal are the terminal 100 and the terminal 200 respectively.
[0189] As an example, when the terminal 100 and the terminal 200 create the IMS session, the CDC can be created between the terminal 100 and the terminal 200.
[0190] For example, assuming that the terminal 100 is the party initiating the establishment of the IMS session, when the terminal 100 requests to create the IMS session with the terminal 200, the terminal 100 can also request to create the first data channel with the terminal 200.
[0191] As another example, in the process of establishing the second data channel between either of the terminal 100 and the terminal 200 and the DCS, either of the terminal 100 and the terminal 200 can further send a request message for creating the first data channel to the other of the terminal 100 and the terminal 200, to request the first data channel between the terminal 100 and the terminal 200.
[0192] The second data channel is a data channel established between either of the terminal 100 and the terminal 200 and the DCS, and can also be referred to as a BDC, and is used to support the terminal 100 or the terminal 200 to obtain a data channel application used in real-time communication from the DCS.
[0193] For example, the second data channel can be referred to as a BDC. For example, when the terminal 100 establishes the BDC with the DCS, the terminal 100 can further establish the CDC with the terminal 200.
[0194] For example, the second data channel can be a BDC created by either of the terminal 100 and the terminal 200 based on a SIP re-INVITE request.
[0195] As another example, when the first P2P type third data channel is created between the terminal 100 and the terminal 200, the terminal 100 and the terminal 200 can further create the CDC in the IMS session.
[0196] The third data channel, which can also be referred to as an ADC, is used to transmit interactive data / application data generated by data channel applications running on both the terminal 100 and the terminal 200.
[0197] For example, the terminal 200 is a party initiating the creation of the first P2P type third data channel with the terminal 100, and the terminal 200 can further initiate a request for creating the CDC with the terminal 100, or the terminal 100 can further initiate a request for creating the CDC with the terminal 200 when the terminal 200 initiates a request for creating the first P2P type ADC with the terminal 100.
[0198] It should be noted that the timing of creating the first data channel between the first terminal and the first device in the above P2P scenario is only an example, and the first terminal and the first device can create the first data channel at any time before transmitting the first request message using the first data channel, and embodiments of the present application do not limit this.
[0199] As another example, in the P2A scenario, the first device can be a network element in the IMS network, for example, the first device can be the DCS F500 in (b) of FIG. 4, and the first terminal can be the terminal 400.
[0200] As an example, in the P2A scenario, the BDC of the terminal 100 can also be used as the CDC, i.e., the DCSF 500 can send the first request message to the terminal 100 as the first data channel.
[0201] The following will take the first terminal as the terminal 400 and the first device as the DCSF 500 as an example to describe the timing of establishing the CDC between the terminal 400 and the DCSF 500 in the P2A scenario.
[0202] As an example, when the terminal 400 creates the second data channel with the DCS, the DCSF creates the CDC with the terminal 400. In other words, the CDC is the data channel established with the DCSF when the terminal 400 creates the second data channel.
[0203] The second data channel is the data channel created between the terminal 400 and the DCS, which can also be referred to as the BDC, and is used to support the terminal 400 to obtain the application program used in real-time communication, i.e., the data channel application, from the DCS.
[0204] As an example, the BDC between the terminal 400 and the DCS in the embodiment of the present application can also be used as the CDC. In this case, the DCS can send the first request message to the terminal 400 through the BDC.
[0205] As another example, when the terminal 400 creates the first P2A type third data channel with the DCS, the terminal 400 creates the CDC with the DCSF. In other words, the CDC is the data channel established with the DCSF when the terminal 400 creates the first P2P type third data channel with the DCS.
[0206] The third data channel is used to transmit the interaction data / application data generated by the data channel application. For example, for the P2A (Person to Application) type service, such as real-time translation, the terminal 400 can query the real-time translation result from the DCS through the third data channel, and correspondingly, the DCS can send the real-time translation result to the terminal 400 through the third data channel.
[0207] For example, when the terminal 400 initiates the establishment of the first P2A type ADC with the DCS, the terminal 400 can also initiate the request for creating the CDC to the DCSF.
[0208] It should be noted that the timing of creating the first data channel between the first terminal and the first device in the above P2A scenario is only an example, and the first terminal and the first device can create the first data channel at any time before using the first data channel to transmit the first request message, which is not limited in the embodiment of the present application.
[0209] The process of establishing the first data channel between the first device and the first terminal in the embodiment of the application can refer to the process shown in FIG. 8.
[0210] As an example, the first terminal and the first device can establish the CDC by referring to the following manner:
[0211] For example, the first terminal is the party initiating the data channel creation request, and the second terminal is the party receiving the data channel creation request, as shown in FIG. 8.
[0212] 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.
[0213] The data channel creation request carries an SDP offer. The SDP offer includes media negotiation information of the data channel. The data channel can be represented by the following attribute line.
[0214] a=dcmap:z subprotocol="http", where z represents the stream ID, and the subprotocol parameter represents the sub-protocol used on the data channel. It is assumed that the data channel with stream ID z is CDC. It can be understood that the stream IDs of ADC and BDC do not include z.
[0215] Or, a=3gpp-req-app:"cdc";l-UE, where cdc represents the APP ID of CDC. l represents the stream ID of the data channel, and UE represents that the established CDC is a P2P DC. It can be understood that the stream IDs of ADC and BDC do not include l.
[0216] For example, the data channel creation request can be an INVITE / re-INVITE / UPDATE request to create a session (INVITE) or modify a session (re-INVITE / UDPATE).
[0217] The above INVITE / re-INVITE / UPDATE request is forwarded to the second terminal by the IMS network (such as IMS network 1 and IMS network 2). The IMS network 1 is the IMS network corresponding to the first terminal. The IMS network 2 is the IMS network corresponding to the second terminal.
[0218] 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. The response message carries an SDP answer, and the SDP answer includes data channel media information accepted by the second terminal. The response message is forwarded to the first terminal by the IMS network.
[0219] For example, the response message can be an 18x or 200 OK response.
[0220] Option 2, the first terminal is a party initiating the creation of the CDC, and the DCSF is a receiving party, for example, the DCSF is a network element of the IMS network.
[0221] Step 1, the first terminal sends a data channel creation request to the DCSF, and correspondingly, the DCSF receives the data channel creation request. The SDP offer in the data channel creation request includes media negotiation information of the data channel. The data channel can be represented by the following attribute line. For example, the media negotiation information can be description information of the terminal for establishing the CDC, which is used to describe the IP address, port information, TLS ID and certificate, QoS requirement, etc. of the terminal for connecting the CDC.
[0222] a = dcmap: z subprotocol = "http", wherein z represents a stream ID, and the subprotocol parameter represents a subprotocol used on the DC, and it is assumed that the data channel with the stream ID z is the CDC. The z can be a specific value or a range, which is not limited in the embodiments of the present application.
[0223] Alternatively, a = 3gpp-req-app: "cdc"; "q" - Server, wherein cdc represents an APP ID of the CDC, "q" represents a stream ID of the data channel, and Server represents that the established CDC is a P2A DC.
[0224] For example, the data channel creation request can be an INVITE / re-INVITE / UPDATE request to create a session (INVITE) or modify a session (re-INVITE / UDPATE).
[0225] Step 2, the DCSF returns a response message to the first terminal. Correspondingly, the first terminal receives the response message from the DCSF. The response message carries an SDP answer, which includes: CDC media information accepted by the DCSF. The response message is forwarded to the first terminal by the IMS network.
[0226] The response message indicates that the DCSF accepts to establish the first data channel.
[0227] For example, the response message can be an 18x or 200 OK response.
[0228] In 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.
[0229] For example, the first request message carries a first application identifier. The first request message requests to update a state of a first data channel application corresponding to the first application identifier on the first terminal. The first terminal determines, through the first application identifier, which state of which data channel application on the first terminal the first device requests to update. For example, the first application identifier is an 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 a data channel application server in an Internet Protocol Multimedia Subsystem (IMS) session process.
[0230] For example, the first request message can request the first terminal to start the first data channel application on the first terminal identified by the first application identifier, which can also be described as: the first request message requests to update the state of the first data channel application on the first terminal to a start state, i.e., the first request message requests to start the first data channel application on the first terminal. For example, the first request message can be an open remote application (OpenRemoteApp (APP ID)) request message. It can be understood that starting 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 a shown state.
[0231] For example, the first request message can request to update the state of the first data channel application on the first terminal to a first state. The first request message includes the first state and the APP ID. For example, the first request message can be a state update request message. For example, the first request message can be changeRemoteAppStatus (APP ID, status). The first state can be any one of start, foreground, background, and close, which is not limited in the embodiments of the present application. Wherein, status indicates the first state.
[0232] For example, the first request message can also request to update the state of the first data channel application on the first terminal to a background state, or the first request message requests to close the first data channel application on the first terminal, and the like. For example, for a P2P type of real-time interaction class of data channel applications such as screen sharing or AR annotation, the data channel applications between the terminals of the call are required to be in the foreground at the same time, and the data channel applications can normally run. Taking the first device as the second terminal, the second terminal can send the first request message to the first terminal. The first request message requests the first terminal to start the first data channel application on the first terminal.
[0233] For a P2A (Person to Application) type of service, such as real-time translation, taking the first device as the DCSF for example, the first terminal can request the DC AS to provide real-time translation results. In one case, before the DC AS sends the real-time translation results to the first terminal, the DC AS can trigger the DCSF to send the first request message to the first terminal to request to start the first data channel application on the first terminal. In another case, when the DC AS sends the real-time translation results to the first terminal, if the first data channel application on the first terminal is not started, the service cannot normally run, and then the DC AS can trigger the DCSF to send the first request message to the first terminal to request to start the first data channel application on the first terminal.
[0234] As an example, the first request message can carry first indication information. In the scenario where the first device wants to wake up the first data channel application on the first terminal, the first indication information can 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 the first state. The first indication information can indicate to update the first data channel application on the first terminal to the first state. For example, the first indication information indicates to update the state of the first data channel application on the first terminal to the background.
[0235] For example, the first request message can be an application layer message. The application layer message can use an application layer protocol. For example, the application layer protocol can be an HTTP protocol. For example, the first request message can be OpenRemoteApp (APP ID) or changeRemoteAppStatus (APP ID, status), or directly pass the message through JSON.
[0236] Step 703, in response to the first request message, the first terminal updates the state of the first data channel application on the first terminal.
[0237] In some scenarios, the first data channel application on the first terminal can be switched to the background due to some 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, it can cause the service between the first device and the first terminal to not run normally, or in some scenarios, the first device wants to change the state of the first data channel application on the first terminal to the state expected by the first device. In order to achieve the above purpose, the communication method provided by the embodiment of the application 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, in order to realize that the first terminal updates 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, so as to solve the situation that the service cannot run normally in the process of the IMS session between the first terminal and the second terminal or the DC AS due to that the first data channel application on the first terminal is not running in the foreground.
[0238] As an example, the method provided by the embodiment of the application can be used before step 702, the first device does not need to determine the state of the first data channel application on the first terminal, and can send a first request message on the first data channel to request to start the first data channel application on the first terminal when it is needed to start the first data channel application on the first terminal, or to request to update the state of the first data channel application on the first terminal to the first state when it is needed to update the state of the first data channel application on the first terminal. Or another example, the method provided by the embodiment of the application can further include that the first device determines that the first data channel application on the first terminal is not started, and the first device sends a first request message on the first data channel to request to start the first data channel application on the first terminal when the first device determines that the first data channel application on the first terminal is not started. 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, the first device sends a first request message on the first data channel to request to update the state of the first data channel application on the first terminal to the first state.
[0239] As an example, the first device determining that the first data channel application on the first terminal is not started can include that the first device sends a query request message to request to query the state of the first data channel application on the first terminal.
[0240] In a possible implementation of the present application, taking the first device as an example, the method provided by the embodiments of the present application can further include that the DCSF receives a second request message from the DC AS before step 701. The second request message requests to start the first data channel application on the first terminal.
[0241] For example, the DC AS invokes the service provided by the DCSF and requests the DCSF to wake up the first data channel application of the first terminal. For example, the DC AS can invoke the service provided by the DCSF and request the DCSF to wake up the first data channel application of the first terminal when it is determined that the first data channel application of the first terminal is not started, or before the DC AS sends the first data channel application of the first terminal with service.
[0242] For example, in some scenarios, the DC AS usually requires the first data channel application on the first terminal to be in the foreground when sending the first data channel application of the first terminal with data, and if the first data channel application is closed or switched to the background, the data sending will fail. In this scenario, if the DC AS fails to successfully send the first data channel application of the first terminal with data, it can be determined that the first data channel application of the first terminal is closed or switched to the background. Alternatively, when 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 through the ADC between the first terminal and the DC AS. The message is used to indicate that the first data channel application on the first terminal is closed or in the background, so that the first device determines that the first data channel application of the first terminal is not started.
[0243] In a possible implementation of the present application, taking the first device as an example, the method provided by the embodiments of the present application can further include that the DCSF receives a second request message from the DC AS before step 701. The second request message requests to start the first data channel application on the first terminal.
[0244] In a possible implementation of the present application, the method provided by the embodiments of the present application can further include that the first terminal sends a first response message to the first device through the first data channel after step 703. Correspondingly, the first device receives the first response message through the first terminal.
[0245] For example, the first response message comprises first information, and the first information indicates a result of the state update of the first data channel application on the first terminal. The first device can be made to know the updated state of the first data channel application on the first terminal according to the first information.
[0246] For example, if the first request message requests to start the first data channel application on the first terminal, if the first terminal successfully starts the first data channel application on the first terminal in step 703, the first information indicates that the first terminal successfully starts the first data channel application on the first terminal. If the first terminal does not successfully start the first data channel application on the first terminal in step 703, the first information indicates that the first terminal does not successfully start the first data channel application on the first terminal.
[0247] For example, if the first request message requests to update the state of the first data channel application on the first terminal to the first state, if the first terminal successfully updates the first data channel application on the first terminal to the first state in step 703, the first information indicates that the first terminal successfully updates the first data channel application on the first terminal to the first state, or indicates the updated state of the first data channel application. If the first terminal does not successfully update the state of the first data channel application on the first terminal to the first state in step 703, the first information indicates that the first terminal does not successfully update the state of the first data channel application on the first terminal to the first state.
[0248] For example, if the first device is a DCSF, after the DCSF obtains the first response message, the method provided in the embodiments of the present application can further send the first response message to the DC AS. In this way, the DC AS can know the updated state of the first data channel application on the first terminal. For example, the DC AS can send the real-time translation result to the first terminal, and before sending the real-time translation result, the DC AS can request the DCSF to start the first data channel application on the first terminal, and then the DCSF can send the first request message to the first terminal to request to start the first data channel application on the first terminal. If the first terminal successfully starts the first data channel on the first terminal, the first device can send the first response message to the DC AS, and after the DC AS determines that the first data channel application on the first terminal is in the starting state according to the first response message, the DC AS can send the real-time translation result to the first terminal.
[0249] For example, if the first device is a second terminal, after the second terminal obtains the first response message, the method provided in the embodiments of the present application can further send the first response message to the first data channel application on the second terminal. In this way, the first data channel on the second terminal can know the state of the first data channel application on the first terminal.
[0250] In a possible implementation of the present application, the method provided by the embodiments of the present application can further include, after step 702, that the first device sends a fourth request message to the first terminal through the first data channel. The fourth request message requests to update the state of the first data channel application on the first terminal to a second state. For example, if the first request message requests to start the first data channel application on the first terminal, the second state can be closed or background. For example, the first request message includes the first state, and the second state is different from the first state. For example, the first state is foreground, and the second state is background.
[0251] In a possible implementation of the present application, the method provided by the embodiments of the present application can further include that the first device outputs the state update result of the first data channel application on the first terminal. In this way, the user can determine the latest state of the first data channel application on the first terminal according to the state update result of the first data channel application on the first terminal.
[0252] In a possible implementation of the present application, step 703 can be implemented in the following manner: in response to the first request message, the first terminal directly updates the state of the first data channel application on the first terminal.
[0253] For example, if the first request message is a start request message, the first terminal starts the first data channel application on the first terminal in response to the start request message. In this way, the state of the first data channel application on the first terminal can be the start state.
[0254] It should be noted that, in actual process, when the first terminal receives the start request message, the first data channel application on the first terminal can be in the start state or can not be in the start state. Specifically, the first terminal determines that the first data channel application on the first terminal is not started in response to the start request message, and then starts 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 the start state, the first terminal can directly send the first information indicating the start result of the first data channel application to the first device.
[0255] For example, if the first request message is a state update request message, the state update request message includes the first application identifier and the first state, and the first terminal updates the state of the first data channel application on the first terminal to the first state in response to the state update request message. In this way, the state of the first data channel application on the first terminal can be the start state.
[0256] It is worth mentioning that in actual process, when the first terminal receives the start request message, the state of the first data channel application on the first terminal can be the first state or can not be the first state. Specifically, the first terminal determines that the state of the first data channel application on the first terminal is not the first state in response to the state update request message, and then 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 the first state when the first terminal receives the state update request message, the first terminal can send a response message to the first device in response to the state update request message, and the response message is used to indicate that the state of the first data channel application is the first state.
[0257] As shown in FIG. 9, FIG. 9 is a flow diagram of a method for starting a data channel application in an IMS session provided by an embodiment of the present application. In this method, the first device is taken as terminal A, and the first terminal is taken as terminal B. The scenario in which terminal A requests terminal B to start a P2P type data channel application is described. The data channel application A runs in both terminal A and terminal B. The method comprises the following steps:
[0258] Step 900: Establishing a CDC between terminal A and terminal B.
[0259] As an example, the specific process of how terminal A and terminal B establish a CDC can refer to the process shown in FIG. 8. Embodiments of the present application will not be described here.
[0260] As an example, terminal A and terminal B can establish a CDC in the following situations. For example, terminal A and terminal B can establish a CDC before sending the first request message. For example, terminal A and terminal B can create a CDC when they create an IMS session, or can create a data channel as a CDC when either of terminal A and terminal B requests to create a BDC, or terminal A and terminal B can create a data channel as a CDC when they create a first P2P type ADC.
[0261] Step 901: The data channel application A requests a client (DCMTSI Client) supporting a DC-based IMS multimedia telephone service to start the data channel application A on terminal B.
[0262] For example, the data channel application A can send a request 1 to the DCMTSI Client, and the request 1 requests to start the data channel application A on terminal B. As an example, the request 1 can not need to carry any parameter, or can carry a parameter indicating to start the data channel application A on terminal B.
[0263] The data channel application A on terminal A can communicate with the DCMTSI Client through the API provided by the DCMTSI Client. For example, the API provided by the DCMTSI Client includes openRemoteApp, which does not need to carry any parameters.
[0264] The data channel application A can request the DCMTSI Client supporting the IMS multimedia phone service to start the data channel application A on terminal B through the API provided by the DCMTSI Client.
[0265] As an example, the data channel application A can be a P2P type application.
[0266] Step 902, terminal A sends a first request message to terminal B through CDC, and terminal B receives the first request message from terminal A through CDC.
[0267] For example, the DCMTSI Client in terminal A sends the first request message to the DCMTSI Client in terminal B through CDC.
[0268] For example, the first request message requests to start / wake up the data channel application A on terminal B. For example, the first request message includes the APP ID of the data channel application A.
[0269] As an example, the first request message can be an application layer message, which can be transmitted through HTTP protocol as an application layer protocol. For example, the message is OpenRemoteApp (appid), or terminal A directly transmits the message through JSON.
[0270] Step 903, after receiving the first request message, terminal B checks whether the data channel application A is in the foreground.
[0271] For example, the DCMTSI Client in terminal B checks whether the specified data channel application A is in the foreground, such as whether the mini-program type data channel application A is in the shown state, and whether the Web application type data channel application A is in the Active state. If the mini-program type data channel application A is not in the shown state, it is determined that the data channel application A is not started or not in the foreground. If the Web application type data channel application A is not in the Active state, it is determined that the data channel application A is not started or not in the foreground.
[0272] After terminal B checks that the data channel application A is not in the foreground, terminal B can perform steps 904a1-904a2, or terminal B can perform step 904b after checking that the data channel application A is not in the foreground.
[0273] Optionally, when the terminal B receives the first request message, the data channel application A on the terminal B can be in the foreground of the terminal B or can not be in the foreground. If the data channel application A on the terminal B is in the foreground, the terminal B can perform the following step 905 to inform the terminal A that the data channel application A on the terminal B is in the started state.
[0274] If the data channel application A is not started, the terminal B outputs prompt information indicating whether the user agrees / disagrees to switch the data channel application A to the foreground. For example, the DCMTSI Client of the terminal B outputs the prompt information.
[0275] As an example, for the data channel application A of the applet type, the prompt information indicates whether the user agrees / disagrees to switch the data channel application A to the shown state.
[0276] For the data channel application A of the web application type, the prompt information indicates whether the user agrees / disagrees to switch the data channel application A to the Active state.
[0277] For example, the terminal B can output the prompt information to remind the user by means of a pop-up window, vibration, shaking, etc., or directly wake up the data channel application A.
[0278] As an example, the terminal B directly wakes up the data channel application A can be implemented in the following manner: for the data channel application A of the web application type, the terminal B determines that the data channel application A is not in the Active state, and then switches the data channel application A of the web application type to the Active state to wake up the data channel application A. For the data channel application A of the applet type, the terminal B determines that the data channel application A is not in the shown state, and then switches the data channel application A of the applet type to the shown state to wake up the data channel application A.
[0279] It should be noted that the step is an optional step.
[0280] Step 904a2, the terminal B processes the data channel application A according to the operation of the user on the prompt information, such as starting the data channel application A or not starting the data channel application A.
[0281] As an example, for a web application type of data channel application A, terminal B can display a prompt information to prompt the user whether to agree / disagree with the data channel application A switching to the Active state. If terminal B detects an operation indicating to agree with the data channel application A switching to the Active state, terminal B switches the web application type of data channel application A to the Active state, and then performs the following step 905. If terminal B detects an operation indicating to disagree with the data channel application A switching to the Active state, terminal B maintains the state of the web application type of data channel application A unchanged, and then performs the following step 905.
[0282] As another example, for a widget type of data channel application A, terminal B can display a prompt information to prompt the user whether to agree / disagree with the data channel application A switching to the shown state. If terminal B detects an operation indicating to agree with the data channel application A switching to the shown state, terminal B switches the widget type of data channel application A to the shown state, and then performs the following step 905. If terminal B detects an operation indicating to disagree with the data channel application A switching to the shown state, terminal B maintains the state of the widget type of data channel application A unchanged, and then performs the following step 905.
[0283] Step 904b, terminal B starts the data channel application A. For example, the DCMTSI Client in terminal B starts the data channel application A.
[0284] Step 905, terminal B sends a first response message to terminal A through the CDC, and correspondingly, terminal A receives the first response message from terminal B. The response message carries the starting result of the data channel application A in terminal B.
[0285] As an example, the first response message includes the starting result of the data channel application A in terminal B. For example, started or not started.
[0286] As an example, if terminal B does not start the data channel application A in terminal B, the first response message further carries the reason why the data channel application A in terminal B is not started, such as the user of terminal B rejecting to start the application A, terminal B not subscribing to the service, failure in downloading and installing the data channel application A, etc.
[0287] For example, the first response message can be an application layer message. For example, HTTP is used as the application layer message, 2xx is returned as a successful response, or 4xx and 5xx are returned as a failure response, and the error reason is carried, such as user_rejected, DOWNLOAD_FAILURE, etc.
[0288] Step 906, the DCMTSI Client on the terminal A informs the data channel application A on the terminal B of the starting result of the data channel application A on the terminal B.
[0289] As shown in FIG. 10, FIG. 10 is a flow diagram of updating the state of a data channel application in an IMS session according to an embodiment of the present application. In this method, the first device is taken as terminal A, and the first terminal is taken as terminal B. The application describes that terminal A requests terminal B to set the P2P type data channel application on terminal B to a specified state. The data channel application A runs on both terminal A and terminal B. The method comprises the following steps:
[0290] Step 1000, a CDC is established between terminal A and terminal B.
[0291] The specific implementation of step 1000 can refer to the description of step 900, and will not be repeated here.
[0292] Step 1001, the data channel application A on terminal A requests the DCMTSI Client to change the state of the data channel application A on terminal B.
[0293] For example, the data channel application A can send a request 1 to the DCMTSI Client, which requests to change the state of the data channel application A on terminal B. As an example, the request 1 includes the APP ID of the data channel application A and a first state. The first state is the state that terminal A hopes the data channel application A on terminal B to adjust to. For example, the first state can include: launched, foreground, background, closed, etc.
[0294] For example, the data channel application A on terminal A can communicate with the DCMTSI Client through the API provided by the DCMTSI Client. For example, the API provided by the DCMTSI Client includes: changeRemoteAppStatus(status), and the status includes Launched, Shown, Hidden, etc.
[0295] The data channel application A can request the DCMTSI Client to update the state of the data channel application A on terminal B to the first state through the API provided by the DCMTSI Client.
[0296] As an example, the data channel application A can be a P2P type application.
[0297] Step 1002, terminal A sends a first request message through the CDC. Correspondingly, terminal B receives the first request message through the CDC.
[0298] For example, the first request message requests to change the state of the data channel application A on terminal B. For example, the first request message includes the APP ID of the data channel application A and the state to which the data channel application A needs to be adjusted, i.e., the first state.
[0299] As an example, the first request message can be an application layer message, such as the message example: OpenRemoteApp (APP ID, status).
[0300] Step 1003, after receiving the first request message, terminal B parses the first request message sent by terminal A, and checks whether the data channel application A is in the first state.
[0301] For example, the DCMTSI Client on terminal B checks whether the data channel application A is in the first state.
[0302] As an example, when terminal B confirms that the data channel application A is not in the first state, terminal B can perform the following step 1004 and step 1005, or omit step 1004 and directly perform step 1005, i.e., directly update the data channel application A on terminal B to the first state.
[0303] As an example, when terminal B confirms that the data channel application A is in the first state, terminal B can perform the following step 1006 to make terminal A determine that the data channel application A of terminal B is in the first state.
[0304] Step 1004, if the data channel application A on terminal B is not in the first state, terminal B prompts the user whether to agree / disagree with the state adjustment of the data channel application A.
[0305] For example, if the DCMTSI Client on terminal B determines that the data channel application A on terminal B is not in the first state, the DCMTSI Client on terminal B outputs prompt information to prompt the user whether to agree / disagree with the state adjustment of the data channel application A.
[0306] For example, the first state is start, and taking the data channel application A in the applet type as an example, if the data channel application A on terminal B is in the shown state, terminal B determines that the data channel application A is in the first state, and taking the data channel application A in the Web application type as an example, if the data channel application A on terminal B is in the Active state, terminal B determines that the data channel application A is in the first state.
[0307] For example, the first state is closed, taking the data channel application A of the applet type as an example, if the data channel application A on terminal B is in the shown state, terminal B determines that the data channel application A is not in the first state, taking the 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, terminal B determines that the data channel application A is not in the first state.
[0308] As an example, terminal B can prompt the user whether to agree / disagree with the state adjustment of the data channel application A through a pop-up window, vibration, shaking, etc.
[0309] As an example, in the case of performing step 1004, if terminal B detects that the user indicates to agree to adjust the state of the data channel application A to the first state, the following step 1005 is performed. If terminal B detects that the user indicates to disagree to adjust the state of the data channel application A to the first state, the following step 1006 is performed.
[0310] Step 1005, terminal B switches the state of the data channel application A to the first state.
[0311] Step 1006, terminal B sends a first response message to terminal A through the CDC, and correspondingly, terminal A receives the first response message from terminal B through the CDC.
[0312] The first response message includes the state change result of the data channel application A. For example, terminal B successfully updates the state of the data channel application A to the first state, or terminal B fails to update the state of the data channel application A to the first state. If the state of the data channel application A is not successfully updated to the first state, the first response message can also carry a failure reason, such as user rejection, etc.
[0313] Through step 1006, terminal A can know the state change result of the data channel application A on terminal B.
[0314] Step 1007, terminal A notifies the data channel application A of the state change result of the DC application A on terminal B.
[0315] As shown in FIG. 11, FIG. 11 is a specific flowchart of starting a data channel application in an IMS session in a P2A scenario provided by the embodiment of the application, taking the first device as a DCSF and the first terminal as an example, the method comprises:
[0316] Step 1100, a CDC is established between the DCSF and the terminal.
[0317] For the coordination of P2A type data channel application, when the terminal creates a BDC or creates a first P2A type ADC between the terminal and the DC AS, the terminal creates a special P2A type DC between the DCMTSI Client and the DCSF, that is, a CDC.
[0318] The establishment process of the CDC is consistent with that of other DCs, but through the CDC, the DC AS can wake up the IMS data channel application on the terminal A, avoiding the situation that the service cannot normally run due to the life cycle management of the data channel application during the IMS session call.
[0319] In this state, the CDC is between the terminal and the DCSF, not between the terminal and the DC AS. Because the CDC is shared by different data channel applications, if it is set between the terminal and the DC AS, it can only be used by a single DC AS.
[0320] Step 1101, the DC AS requests the DCSF to start the data channel application A of the terminal.
[0321] As an example, the DC AS can send a request to the DCSF to start the data channel application A of the terminal, which can not need to carry any parameters.
[0322] For the P2A scenario, the DC AS calls the service provided by the DCSF to request to wake up the data channel application A on the terminal side.
[0323] Step 1102, the DCSF sends a first request message to the terminal through the CDC. Correspondingly, the terminal A receives the first request message from the DCSF through the CDC.
[0324] For example, the first request message requests to start the data channel application A. For example, the first request message can include the APP ID of the data channel application A. For example, the first request message can be an application layer message consistent with the embodiment shown in FIG. 8, which will not be described here.
[0325] As an example, the first request message can also include first indication information for requesting to start the data channel application A.
[0326] Step 1103, after receiving the first request message, the terminal checks whether the data channel application A has been started.
[0327] As an example, in the case where the data channel application A is not started, the terminal can first prompt the user and then perform corresponding processing based on the user's indication of consent / refusal, such as performing the following steps 1104-1106. Or the terminal can directly perform the action of waking up the data channel application A, i.e., omitting to perform step 1104, and performing steps 1105-1106. In the case where the data channel application A is started, the terminal performs the following step 1106.
[0328] Step 1104, the terminal determines that the data channel application A is not started, and the terminal outputs prompt information. The prompt information is used to prompt the user whether to consent / refuse to start the data channel application A.
[0329] For example, the terminal can output prompt information to remind the user whether to consent / refuse to start the data channel application A through a pop-up window, vibration, shaking, etc.
[0330] As an example, in the case where step 1104 is performed, if the terminal detects that the user indicates to consent to start the data channel application A, the following step 1105 is performed. If the terminal detects that the user indicates to refuse to start the data channel application A, the following step 1106 is performed.
[0331] Step 1105, the terminal wakes up / starts the data channel application A.
[0332] Step 1106, the terminal informs the DCSF of the state change result of the data channel application A through the CDC.
[0333] For example, the terminal A can send a first response message to the DCSF through the CDC, and the first response message includes the state change result of the data channel application A. For example, the data channel application A is successfully started, or the data channel application A is not successfully started. If the data channel application A is not successfully started, the failure reason is carried, such as user refusal, the terminal does not subscribe to this service, download / installation failure, etc.
[0334] Step 1107, the DCSF informs the DC AS of the data channel application A start result of the terminal.
[0335] It should be noted that, in order to achieve the above functions, each network element, such as the first device and the first terminal, includes a corresponding structure and / or software module for performing each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of the examples described in the embodiments disclosed in the present application, the present application can be realized in the form of hardware or a combination of hardware and computer software. Whether a certain function is performed by hardware or 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 the present application.
[0336] The embodiments of the present application can divide the functional units of the first device and the first terminal according to the above method examples. For example, each functional unit can be divided according to each function, or two or more functions can be integrated into one processing unit. The integrated unit can be realized in the form of hardware or software functional unit. It should be noted that the division of units in the embodiments of the present application is illustrative, and is only a logical function division. In actual implementation, there can be another division method.
[0337] The above describes the method of the embodiments of the present application in combination with FIGS. 5 to 11. The communication device provided by the embodiments of the present application for executing the above method is described below. Those skilled in the art can understand that the method and the device can be combined and referenced with each other, and the communication device provided by the embodiments of the present application can execute the steps performed by the first device and the first terminal in the above analysis method.
[0338] In the case of using an integrated unit, FIG. 12 shows the communication device involved in the above embodiments, which can include a communication module 1213 and a processing module 1212. In an optional implementation, the communication device can further include a storage module 1211 for storing program codes and data of the communication device.
[0339] In one example, the communication device is the first device or a chip applied to the first device. In this case, the communication module 1213 is configured to support the communication device to communicate with an external network element (for example, the first terminal). For example, the communication module 1213 is configured to perform the signal transceiving operation of the first device in the above method embodiments. The processing module 1212 is configured to perform the processing operation of the first device in the above method embodiments.
[0340] In one embodiment of this application, the communication module 1213 is used to perform the sending action executed by the first device in step 702 of FIG7 of the above embodiment. The processing module 1212 is used to support the communication device in performing step 701 of FIG7.
[0341] 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.
[0342] 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.
[0343] In one embodiment of this application, the communication module 1213 is used to perform the receiving action performed by the first terminal in step 702 of FIG7 of the above embodiment. The processing module 1212 is used to support the communication device in performing the actions performed by the first terminal in steps 701 and 703 above.
[0344] 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.
[0345] 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.
[0346] When the processing module 1212 is a processor 1301 or 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 the communication device shown in FIG13.
[0347] Fig. 13 shows a schematic diagram of a hardware structure of a communication device according to an embodiment of the present application. The first terminal and the first device according to an embodiment of the present application can refer to the schematic diagram of the communication device shown in Fig. 13. The communication device includes a processor 1301, a communication line 1304, and at least one communication interface (for example, the communication interface 1303 is taken as an example for illustration in Fig. 13).
[0348] The processor 1301 can be a general central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of programs according to the solutions of the present application.
[0349] The communication line 1304 can include a path for transmitting information between the above-mentioned components.
[0350] The communication interface 1303 is configured to interact with other devices, for example, using any transceiver, and is configured to communicate with other devices or communication networks, such as Ethernet, a radio access network (RAN), a wireless local area network (WLAN), and the like.
[0351] Optionally, the communication device can further include a memory 1302.
[0352] The memory 1302 can be a read-only memory (ROM) or other type of static storage device that can store static information and instructions, a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disk storage, a magnetic disk storage 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 capable of being accessed by a computer, but is not limited to this. The memory can exist independently and be connected to the processor through the communication line 1304. The memory can also be integrated with the processor.
[0353] The memory 1302 is configured to store computer-executable instructions for implementing the solutions of the present application, and the processor 1301 is configured to execute the computer-executable instructions stored in the memory 1302. The processor 1301 is configured to execute the computer-executable instructions stored in the memory 1302, so as to implement the communication method provided in the embodiments of the present application.
[0354] Optionally, the computer-executable instructions in the embodiments of the present application can also be referred to as application codes, which are not limited in the embodiments of the present application.
[0355] In specific implementation, as an embodiment, the processor 1301 can include one or more CPUs, for example, CPU0 and CPU1 in FIG. 13.
[0356] In specific implementation, as an embodiment, the communication device can include multiple processors, for example, the processor 1301 and the processor 1305 in FIG. 13. Each of the processors can be a single-CPU processor or a multi-CPU processor. The processor herein can refer to one or more devices, circuits, and / or processing cores for processing data (for example, computer program instructions).
[0357] The steps performed by the processor 1301 and the processor 1305 can refer to the steps performed by the processing module 1212. The steps performed by the communication interface 1303 can refer to the steps performed by the communication module 1213.
[0358] FIG. 14 is a structural schematic diagram of a chip 140 according to an embodiment of the present application. The chip 140 includes one or more (including two) processors 1410 and a communication interface 1430.
[0359] Optionally, the chip 140 further includes a memory 1440, which can include a read-only memory and a random access memory, and provides operation instructions and data for the processor 1410. Part of the memory 1440 can further include a non-volatile random access memory (NVRAM).
[0360] In some embodiments, the memory 1440 stores the following elements, execution modules or data structures, or a subset of them, or an extended set of them.
[0361] In the embodiments of the present application, corresponding operations are performed by calling operation instructions (which can be stored in an operating system) stored in the memory 1440.
[0362] In a possible implementation, the first terminal and the first device are similar in structure, and different devices can use different chips to implement respective functions.
[0363] The processor 1410 controls processing operations of any one of the first terminal and the first device, and can also be referred to as a central processing unit (CPU).
[0364] The memory 1440 can include read-only memory and random access memory, and provide instructions and data for the processor 1410. A part of the memory 1440 can also include NVRAM. For example, the memory 1440, the communication interface 1430, and the memory 1440 are coupled together through the bus system 1420, which can include a data bus, a power bus, a control bus, and a state signal bus, etc. However, for the purpose of clarity, all kinds of buses are marked as the bus system 1420 in FIG. 14.
[0365] The method disclosed in the embodiments of the present application can be applied to the processor 1410 or implemented by the processor 1410. The processor 1410 can be an integrated circuit chip with a signal processing capability. In the implementation process, the steps of the above method can be completed by an integrated logic circuit or an instruction in the form of software in the processor 1410. The processor 1410 described above can be a general processor, a digital signal processor (DSP), an ASIC, a field-programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The disclosed methods, steps, and logic block diagrams in the embodiments of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in conjunction with the embodiments of the present application can be directly embodied as a hardware code processor for execution, or a combination of hardware and software modules in the code processor for execution. The software module can be located in a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, a register, or other mature storage media in the art. The storage medium is located in the memory 1440, and the processor 1410 reads the information in the memory 1440 and combines the hardware to complete the steps of the above method.
[0366] In a possible implementation, the communication interface 1430 is configured to perform the receiving and sending steps of the first terminal in the embodiments shown in FIGS. 5-11. The processor 1410 is configured to perform the processing steps of the first terminal in the embodiments shown in FIGS. 5-11.
[0367] In a possible implementation, the communication interface 1430 is configured to perform the receiving and transmitting steps of the first device in the embodiments of FIGS. 5-11. The processor 1410 is configured to perform the processing steps of the first device in the embodiments of FIGS. 5-11.
[0368] In an aspect, a computer-readable storage medium is provided, which stores instructions that, when executed, implement the functions performed by the first terminal or the first device in FIGS. 5-11.
[0369] In an aspect, a computer program product is provided, which includes instructions that, when executed, implement the functions performed by the first device or the first terminal in FIGS. 5-11.
[0370] In an aspect, a chip is provided, which is applied to the first terminal, and includes at least one processor and a communication interface. The communication interface is coupled to the at least one processor. The processor is configured to execute instructions to implement the functions performed by the first terminal in FIGS. 5-11.
[0371] In an aspect, a chip is provided, which is applied to the first terminal, and includes at least one processor and a communication interface. The communication interface is coupled to the at least one processor. The processor is configured to execute instructions to implement the functions performed by the first device in FIGS. 5-11.
[0372] Embodiments of the present application provide a communication system, which includes a first terminal and a first device. There is a CDC between the first terminal and the first device. The first terminal is configured to perform the functions performed by the first terminal in FIGS. 5-11. The first device is configured to perform the functions performed by the first device in FIGS. 5-11. For example, the first device can be a second terminal, or a DCMTSI client running on the second terminal. Or the first device can be a DCSF.
[0373] In the case where the first device is the second terminal, the first terminal and the second terminal have an IMS session, which includes the CDC and an ADC between the first terminal and the second terminal. In addition, either the first terminal or the second terminal has a BDC.
[0374] In the case where the first device is the DCSF, the communication system further includes a DC AS. There is an ADC between the first terminal and the DC AS.
[0375] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer programs or instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are performed. The computer can be a general purpose computer, a special purpose computer, a computer network, a network device, a user equipment or other programmable apparatus. The computer programs or instructions can be stored in a computer readable storage medium or transferred from one computer readable storage medium to another computer readable storage medium, for example, the computer programs or instructions can be transferred from one website site, computer, server or data center to another website site, computer, server or data center through wired or wireless manner. The computer readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center and the like integrated with one or more available media. The available media can be a magnetic medium, such as a floppy disk, a hard disk, a magnetic tape; an optical medium, such as a digital video disc (digital video disc, DVD); and a semiconductor medium, such as a solid state drive (solid state drive, SSD).
[0376] Although the present application is described herein in conjunction with various embodiments, it is understood that other variations of the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed application, from an inspection of the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other elements or steps, and the indefinite articles "a" or "an" do not exclude a plurality. A single processor or other unit can fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to an advantage.
[0377] Although the present application is described herein in conjunction with specific features and embodiments thereof, it is understood that modifications and combinations can occur to those skilled in the art to which the present application pertains, within its spirit and scope. Accordingly, the description and drawings are to be regarded as illustrative in nature and are not to be regarded as limiting the scope of the application as defined in the appended claims. Obviously, various modifications and changes are possible in the present application without departing from the spirit and scope of the application. Accordingly, the present application includes all modifications and variations of this application covered by the scope of the appended claims and their equivalents. Obviously, those skilled in the art can make various modifications and changes to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and changes of the present application fall within the scope of the claims and their equivalents, they are intended to be included in the present application.
Claims
1. A communication method characterized by comprising: The method comprises: establishing a first data channel with a first terminal; sending a first request message through the first data channel, the first request message comprising a first application identifier, the first request message being used to request updating a state of a first data channel application corresponding to the first application identifier on the first terminal; the first data channel application being used for data interaction between the first terminal and a second terminal or a data channel application server in an Internet Protocol Multimedia Subsystem (IMS) session process.
2. The method of claim 1, wherein, The first request message requests starting the first data channel application corresponding to the first application identifier on the first terminal.
3. The method of claim 1, wherein, The first request message comprises a first state, the first state being a state that the first device expects the first data channel application corresponding to the first application identifier on the first terminal to be updated to.
4. The method according to any one of claims 1 to 3, characterized in that, The method further comprises: receiving a first response message through the first data channel, the first response message comprising first information, the first information indicating a state updating result of the first data channel application on the first terminal, the state updating result at least comprising a starting result of the first data channel application.
5. The method of claim 4, wherein, The first information indicates that the state of the first data channel application is not successfully updated, and the first response message further comprises a reason for unsuccessfully updating the state of the first data channel application.
6. The method according to any one of claims 1 to 5, characterized in that, The first device is a second terminal or a DC-enabled IMS multimedia telephone service client on the second terminal, and the establishing of the first data channel with the first terminal comprises: establishing the first data channel with the first terminal when either of the first terminal and the second terminal creates a second data channel, the second data channel being used to support either of the first terminal and the second terminal to obtain a data channel application; or, establishing the first data channel with the first terminal when the first terminal and the second terminal create a first point-to-point type third data channel, the third data channel being used to transmit data generated by the data channel application running on 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 establishing of the first data channel with the first terminal comprises: establishing the first data channel with the first terminal when the first terminal creates a second data channel, the second data channel being used to support the first terminal to obtain a data channel application; or, establishing the first data channel with the first terminal when the first terminal creates a first node-to-application type third data channel with the data channel application server, the third data channel being used to transmit data generated by the data channel application. The first data channel is used to transmit the first request message of different data channel applications on the first terminal.
8. The method according to any one of claims 1 to 7, characterized in that, The establishing of the first data channel with the first terminal comprises:
9. The method according to any one of claims 1 to 8, characterized in that, receiving a data channel creation request message from a first terminal, the data channel creation request message requesting to create the first data channel with a first device, the data channel creation request including media negotiation information of the first data channel requested to be created; sending a response message to the first terminal, the response message including media information of the first data channel accepted by the first device.
10. A communication method characterized by comprising: The method applied to a first terminal, the method comprising: establishing a first data channel with a first device; receiving a first request message through the first data channel, the first request message including a first application identifier, the first request message being used to request to update a state of a first data channel application corresponding to the first application identifier on the first terminal; the first data channel application being used for the first terminal and a second terminal or a data channel application server to interact data in an Internet Protocol Multimedia Subsystem (IMS) session process; updating the state of the first data channel application in response to the first request message.
11. The method of claim 10, wherein, The first request message requests to start the first data channel application corresponding to the first application identifier on the first terminal, and the updating the state of the first data channel application in response to the first request message comprises: starting the first data channel application on the first terminal in response to the first request message.
12. The method of claim 10, wherein, The first request message includes a first state, the first state being a state that the first device expects the first data channel application corresponding to the first application identifier on the first terminal to be updated to, and the updating the state of the first data channel application in response to the first request message comprises: updating the state of the first data channel application corresponding to the first application identifier on the first terminal to the first state in response to the first request message.
13. The method according to any one of claims 10 to 12, characterized in that, The updating the state of the data channel application in response to the first request message comprises: outputting prompt information in response to the first request message, the prompt information being used to prompt whether to update the state of the first data channel application; detecting a first operation on the prompt information; the first operation indicating an agreement to update the state of the first data channel application; updating the state of the first data channel application in response to the first operation.
14. A communications device, characterized by The apparatus comprises a communication module and a processing module, wherein the processing module is configured to perform actions of processing performed by the first device in the method of any one of claims 1-9, and the communication module is configured to perform actions of receiving or sending performed by the first device in the method of any one of claims 1-9; or the processing module is configured to perform actions of processing performed by the first terminal in the method of any one of claims 10-13, and the communication module is configured to perform actions of receiving or sending performed by the first terminal in the method of any one of claims 10-13.
15. A communication system, characterized by comprising: The first device is configured to perform the method of any one of claims 1-9, and the first terminal is configured to perform the method of any one of claims 10-13.
16. A communication device, characterized by The communication device includes a memory and a processor, the memory is configured to store instructions, the processor is configured to execute the instructions stored in the memory, and execution of the instructions stored in the memory causes the processor to perform the method of any one of claims 1-9 or the method of any one of claims 10-13.
17. A chip, characterized by The chip includes at least one processor and a communication interface, the communication interface is coupled with the at least one processor, the at least one processor is configured to run a computer program or instructions to implement the method of any one of claims 1-9 or the method of any one of claims 10-13, and the communication interface is 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, and when the instructions are executed, the method of any one of claims 1-9 or the method of any one of claims 10-13 is implemented.
19. A computer program product, characterised in that, The computer program product stores instructions, and when the instructions are executed on a computer, the computer implements the method of any one of claims 1-9 or the method of any one of claims 10-13.
Citation Information
Patent Citations
Application management method and application management platform
CN105117278A
Method and Apparatus for Refetching Data
US20090019227A1
Extension of a data channel application id with a data channel tag
WO2024067381A1