Method and communication apparatus for enhancing real-time communication services

By deploying a call enhancement SDK in terminal devices to negotiate data channels with the server and leveraging the characteristics of 5G networks, the problem of low user experience in operator voice services has been solved, enabling rich call enhancement services and simplified interaction processes, thereby improving the user experience.

CN118524357BActive Publication Date: 2026-05-19HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HUAWEI TECH CO LTD
Filing Date
2023-02-17
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

In existing technologies, the user experience of operator voice services is low, video ringback tone interaction cannot be realized, and the interaction between the service APP and the communication module on the terminal device is relied upon, which increases the latency on the terminal side and affects the user experience.

Method used

By deploying a call enhancement SDK in terminal devices, negotiating with servers to establish data channels, providing media information for enhanced services, and leveraging the high bandwidth and low latency characteristics of 5G networks, interactive operations for enhanced services can be achieved, simplifying internal interactions within terminal devices.

Benefits of technology

It enhances the user's native call experience, provides a wealth of call enhancement services, simplifies the interaction process of terminal devices, and reduces the need to modify the terminal's native voice call system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118524357B_ABST
    Figure CN118524357B_ABST
Patent Text Reader

Abstract

A method and communication device for enhancing real-time call service, the method is based on the existing call experience, by carrying a new data channel between the terminal device and the call enhancement server, the AS in the IMS network can call the media information of the enhancement service in the call enhancement server based on the data channel to provide users with more rich call enhancement services in addition to the call, the scheme does not depend on the modification of the original voice call system of the terminal, integrates the call enhancement SDK, and utilizes the existing 5G network high bandwidth and low delay characteristics, which greatly improves the original call experience of the user.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communications, and more specifically, to a method and communication apparatus for enhancing real-time call services. Background Technology

[0002] Currently, many over-the-top (OTT) internet services offered by third parties outside of telecom operators provide users with a wealth of real-time audio and video services. However, the user experience of telecom operators' voice services remains stuck in the 3G / 4G era. For example, in a specific scenario, the calling UE cannot interact with the services provided by the existing AS (Autonomous System). When the calling UE initiates a call to the called UE, a video ringback tone service is triggered. The corresponding VoLTE AS provides this video ringback tone service, but the calling UE can only watch the provided video ringback tone and cannot interact with it. Since the video ringback tone automatically ends after the called UE answers the call, but the calling UE still wants to continue watching the video, they cannot forward or save the video ringback tone before the called UE answers the call.

[0003] Therefore, in one implementation, a Hypertext Transfer Protocol (HTTP) data channel is established by overlaying a packet-switched (PS) data network onto a circuit-switched (CS) domain voice network or an Internet Protocol (IP) multimedia subsystem (IMS) network. A terminal application (APP) then handles the session association and collaboration between the PS network HTTP data channel and the CS network (or IMS network) channel, thereby adding interactive and animated features to the video ringback tone service. Specifically, for example... Figure 1 As shown, a video ringback tone service app can be installed on the calling UE for this video ringback tone service. Simultaneously, a new video ringback tone server is added. This video ringback tone server is deployed on the PS network and stores the basic rendering content of the video ringback tone interactive scene. It only interacts with the calling UE, responding to the calling UE's HTTP requests. The AS service system is deployed on the CS network (or IMS network). The specific process is roughly as follows: When the calling UE initiates a call, an HTTP data channel is established between it and the video ringback tone server. The calling UE's communication module needs to transmit the video ringback tone ID to the video ringback tone service app. The app, carrying the video ringback tone identifier (identity, ID), initiates an HTTP request through the HTTP data channel to access the video ringback tone server and obtain the corresponding interactive content.

[0004] In the above implementation, a single business app can only provide value-added services for a single business scenario. Terminal devices need to install different business apps depending on the specific business scenario, thus impacting user experience. Furthermore, this implementation relies on the communication module interaction between the business app and the terminal device to complete the association and collaboration between the PS network HTTP data channel and the CS network (or IMS network) voice channel, increasing latency on the terminal side and further affecting user experience. Summary of the Invention

[0005] This application provides a method and communication device for enhancing real-time call services, which can improve the user's native call experience.

[0006] Firstly, a method for enhancing real-time call services is provided. This method can be executed by a first server, or by a component of the first server (such as a chip or circuit). There is no limitation on this. For ease of description, the following explanation will take execution by the first server as an example.

[0007] The method may include: when a first terminal device calls a second terminal device, a first server negotiates and establishes a first data channel with a first software development kit (SDK), the first SDK being deployed in the first terminal device, and the first server being used to provide media information for call-based enhanced services to the user of the first terminal device; the first server receives first information from a first application server (AS), the first information including a session identifier and a first call status, wherein the session identifier is a session identifier between the first terminal device and the second terminal device, and the first call status is the current call status of the first terminal device and the second terminal device; the first server sends second information to the first SDK through the first data channel, the second information including media information for one or more enhanced services. One or more enhanced services are enhanced services provided by the second terminal device for the first service in the first call state. The first service is a service provided by the second terminal device to the first terminal device through the first AS. There is a first association relationship between the first data channel and the session identifier. The first server receives third information from the first SDK through the first data channel. The third information includes the identifier of the first enhanced service. The first enhanced service is the service that the user selects from one or more enhanced services to be implemented. The first server sends fourth information to the first AS. The fourth information includes the identifier of the first enhanced service. In the first call state, the first server performs the interaction operation of the first enhanced service between the first terminal device and the second terminal device based on the first association relationship with the first AS.

[0008] In the above technical solution, the first server establishes a data channel with the first terminal device and interacts with the first terminal device through this data channel (e.g., sending media information related to enhanced services and receiving the identifier of the enhanced service selected by the first terminal device). Compared with existing technologies, this method simplifies the internal interaction of the first terminal device. Furthermore, the first server can provide a unified interface for IMS AS to access. Based on the association between the first data channel and the aforementioned session identifier, the first server completes subsequent enhanced service interaction operations, providing users with richer call enhancement services beyond just voice calls. This solution does not rely on modifying the terminal's native voice call system, lightweightly integrates a call enhancement SDK, and leverages the high bandwidth and low latency characteristics of existing 5G networks to significantly improve the user's native call experience.

[0009] In some implementations of the first aspect, the method further includes: a first server receiving a first request message from a first AS, the first request message including a session identifier, the first request message being used to request an association of a data channel for the session identifier; the first server establishing a first association relationship based on the first request message; and the first server sending a first request response message to the first AS, the first request response message including the first association relationship.

[0010] In the above technical solution, the first server receives the request from the first AS network element and associates the session identifier carried by the AS in the request with the established data channel, so that the first server and the first AS can complete the interaction of subsequent enhanced services based on the association relationship.

[0011] In some implementations of the first aspect, the first request message further includes one or more call states, the multiple call states indicating a variety of call states between the first terminal device and the second terminal device, and the first call state being one of the one or more call states, then the first association is the association between the session identifier, the one or more call states and the first data channel.

[0012] In the above technical solution, the first server receives the request from the first AS network element and associates the session identifier, call status and established data channel carried by the AS in the request, so as to enable the first server and the first AS to complete the interaction of subsequent enhanced services based on the association relationship.

[0013] Secondly, a method for enhancing real-time call services is provided. This method can be executed by a first SDK, or by a component of the first SDK (such as a chip or circuit). There is no limitation on this. For ease of description, the following explanation will take execution by the first SDK as an example.

[0014] The method may include: when a first software development kit (SDK) calls a second terminal device, negotiating with a first server to establish a first data channel; the first SDK is deployed in the first terminal device; the first server is used to provide media information for call-based enhanced services to the user of the first terminal device; the first SDK receives second information from the first server on the first data channel, the second information including media information for one or more enhanced services, the one or more enhanced services being enhanced services provided by the second terminal device for a first service in the first call state, the first service being a service provided by the second terminal device to the first terminal device through a first application server (AS), and the first call state being the current call state of the first terminal device and the second terminal device; the first SDK sends third information to the first server on the first data channel, the third information indicating a first enhanced service, the first enhanced service being a service selected by the user from one or more enhanced services; and the first SDK performing interactive operations of the first enhanced service between the first terminal device and the second terminal device through the first data channel with the first server in the first call state.

[0015] In the above technical solution, a data channel is established between the first terminal device and the first server. The first terminal device interacts with the call enhancement server through the established data channel to perform enhanced services. Compared with existing technologies, this method simplifies the internal interaction of the first terminal device. This solution does not rely on the modification of the terminal's native voice call system, but integrates a lightweight call enhancement SDK. By utilizing the high bandwidth and low latency characteristics of the existing 5G network, it greatly improves the user's native call experience.

[0016] Thirdly, a method for enhancing real-time call services is provided. This method can be executed by a first AS, or by a component of the first application server (such as a chip or circuit). There is no limitation on this. For ease of description, the following explanation will take execution by the first application server as an example.

[0017] The method may include: a first application server (AS) sending first information to a first server, the first information including a session identifier and a first call state, wherein the session identifier is a session identifier between a first terminal device and a second terminal device, and the first call state is the current call state of the first terminal device and the second terminal device; the first server is used to provide media information of multiple enhanced services based on the call to the user of the first terminal device; the first information is used to enable the first server to send media information of one or more enhanced services to a first software development kit (SDK) through a first data channel; the one or more enhanced services are enhanced services provided by a first service in the first call state; the first service is a service provided by the second terminal device to the first terminal device through the first AS; a first association relationship exists between the first data channel and the session identifier; and the first SDK is deployed in the first terminal device; the first AS receiving fourth information from the first server, the fourth information including an identifier of a first enhanced service; the first enhanced service is a service selected by the user from one or more enhanced services; and the first AS interacting with the first server in the first call state based on the first association relationship to implement the interaction operation of the first enhanced service between the first terminal device and the second terminal device.

[0018] In the above technical solution, the IMS AS can access the first server through a unified interface. The first AS completes subsequent enhanced service interaction operations based on the association between the first data channel and the aforementioned session identifier, providing users with richer call enhancement services beyond just voice calls. This solution does not rely on modifying the terminal's native voice call system, but integrates a lightweight call enhancement SDK. It can leverage the high bandwidth and low latency characteristics of the existing 5G network to significantly improve the user's native call experience.

[0019] In some implementations of the third aspect, the method further includes: the first AS sending a first request message to the first server, the first request message including a session identifier, the first request message being used to request an association of a data channel for the session identifier; the first AS receiving a first request response message, the first request response message including a first association relationship.

[0020] In the above technical solution, the first AS network element sends a request to the first server and associates the session identifier carried by the AS in the request with the established data channel, so that the first server and the first AS can complete the interaction of subsequent enhanced services based on the association relationship.

[0021] In some implementations of the third aspect, the first request message may also include one or more call states, the multiple call states indicating a variety of call states between the first terminal device and the second terminal device, and the first call state being one of the one or more call states, then the first association is the association between the session identifier, the one or more call states and the first data channel.

[0022] In the above technical solution, the first AS network element sends a request to the first server and associates the session identifier, call status and established data channel carried by the AS in the request, so that the first server and the first AS can complete the interaction of subsequent enhanced services based on the association relationship.

[0023] In some implementations of any of the first to third aspects, the first enhanced service is a desktop sharing service, a remote collaboration service, a touch interaction service, or a real-time tagging service.

[0024] In some implementations of any of the first to third aspects, the media information of the enhanced service includes the icon, name, corresponding operation script, and playback media content of the enhanced service.

[0025] In some implementations of any of the first to third aspects, the first AS is a ringback tone AS, or a virtual private network VPN AS, or a long-term evolution voice bearer VoLTE AS.

[0026] Fourthly, a communication apparatus is provided for performing the method provided in the first aspect. Specifically, the apparatus may include units and / or modules for performing the method in the first aspect and any possible implementation thereof, such as processing units and / or communication units.

[0027] In one implementation, the device is a first server. When the device is a first server, the communication unit can be a transceiver or an input / output interface; the processing unit can be at least one processor. Optionally, the transceiver can be a transceiver circuit. Optionally, the input / output interface can be an input / output circuit.

[0028] In another implementation, the device is a chip, chip system, or circuit used in a first server. When the device is a chip, chip system, or circuit used in a first server, the communication unit may be an input / output interface, interface circuit, output circuit, input circuit, pin, or related circuit on the chip, chip system, or circuit; the processing unit may be at least one processor, processing circuit, or logic circuit.

[0029] Fifthly, a communication apparatus is provided for performing the method provided in the second aspect. Specifically, the apparatus may include units and / or modules for performing the method in the second aspect and any possible implementation thereof, such as processing units and / or communication units.

[0030] In one implementation, the device is a first SDK. When the device is a first SDK, the communication unit can be a transceiver or an input / output interface; the processing unit can be at least one processor. Optionally, the transceiver can be a transceiver circuit. Optionally, the input / output interface can be an input / output circuit.

[0031] In another implementation, the device is a chip, chip system, or circuit used in the first SDK. When the device is a chip, chip system, or circuit used in a terminal device, the communication unit may be an input / output interface, interface circuit, output circuit, input circuit, pin, or related circuit on the chip, chip system, or circuit; the processing unit may be at least one processor, processing circuit, or logic circuit.

[0032] A sixth aspect provides a communication apparatus for performing the method provided in the third aspect. Specifically, the apparatus may include units and / or modules for performing the method in the third aspect and any possible implementation thereof, such as a processing unit and / or a communication unit.

[0033] In one implementation, the device is a first AS. When the device is a first AS, the communication unit can be a transceiver or an input / output interface; the processing unit can be at least one processor. Optionally, the transceiver can be a transceiver circuit. Optionally, the input / output interface can be an input / output circuit.

[0034] In another implementation, the device is a chip, chip system, or circuit used in the first AS. When the device is a chip, chip system, or circuit used in a terminal device, the communication unit may be an input / output interface, interface circuit, output circuit, input circuit, pin, or related circuit on the chip, chip system, or circuit; the processing unit may be at least one processor, processing circuit, or logic circuit.

[0035] A seventh aspect provides a communication device comprising: at least one processor coupled to at least one memory for storing computer programs or instructions, and at least one processor for calling and running the computer programs or instructions from the at least one memory, such that the communication device performs the methods of the first aspect and any possible implementation thereof.

[0036] In one implementation, the device is a first server.

[0037] In another implementation, the device is a chip, chip system, or circuit used in a first server.

[0038] Eighth aspect, a communication device is provided, the device comprising: at least one processor coupled to at least one memory, the at least one memory for storing computer programs or instructions, and the at least one processor for calling and running the computer programs or instructions from the at least one memory, such that the communication device performs the methods of the second aspect and any possible implementation thereof.

[0039] In one implementation, the device is a first SDK.

[0040] In another implementation, the device is a chip, chip system, or circuit used in the first SDK.

[0041] A ninth aspect provides a communication device comprising: at least one processor coupled to at least one memory for storing computer programs or instructions, and at least one processor for calling and executing the computer programs or instructions from the at least one memory, such that the communication device performs the methods of the third aspect and any possible implementation thereof.

[0042] In one implementation, the device is a first AS.

[0043] In another implementation, the device is a chip, chip system, or circuit used in the first AS.

[0044] In a tenth aspect, a processor is provided for performing the methods provided in the foregoing aspects.

[0045] Unless otherwise specified, or if it does not contradict its actual function or internal logic in the relevant description, the transmission and acquisition / reception operations involved in the processor can be understood as processor output and reception, input and other operations, or as transmission and reception operations performed by radio frequency circuits and antennas. This application does not limit them in this regard.

[0046] Eleventhly, a computer-readable storage medium is provided that stores program code for execution by a device, the program code including methods for performing the first, second, or third aspects described above and any possible implementation thereof.

[0047] In a twelfth aspect, a computer program product comprising instructions is provided, which, when run on a computer, causes the computer to perform the methods described in the first, second, or third aspect and any possible implementation thereof.

[0048] In a thirteenth aspect, a chip is provided, the chip including a processor and a communication interface, the processor reading instructions stored in a memory through the communication interface and executing the methods in the first, second, or third aspects and any possible implementation of the first, second, or third aspects.

[0049] Optionally, as one implementation, the chip also includes a memory storing computer programs or instructions, and a processor for executing the computer programs or instructions stored in the memory. When the computer programs or instructions are executed, the processor is used to execute the methods in the first, second, or third aspects described above, as well as any possible implementation of the first, second, or third aspects.

[0050] In a fourteenth aspect, a communication system is provided, the communication system including the communication devices shown in the seventh to ninth aspects. Attached Figure Description

[0051] Figure 1 This is a diagram illustrating a method offered by operators to enhance real-time call services on top of existing voice services.

[0052] Figure 2 This is a schematic diagram of a communication system provided in an embodiment of this application.

[0053] Figure 3 This is a diagram illustrating communication between the calling UE and the called UE.

[0054] Figure 4 This is a schematic diagram of the basic architecture of the IMS network system.

[0055] Figure 5 This is a schematic diagram of a method for enhancing real-time call services provided in an embodiment of this application.

[0056] Figure 6 This is a schematic diagram of a specific method for enhancing real-time call services provided in this application.

[0057] Figure 7 This is a schematic diagram of another specific method for enhancing real-time call services provided in this application.

[0058] Figure 8 This is a schematic diagram of yet another specific method for enhancing real-time call services provided in this application.

[0059] Figure 9 This is a schematic block diagram of the communication device 200 provided in the embodiments of this application.

[0060] Figure 10 This is a schematic block diagram of a communication device 300 provided in an embodiment of this application. Detailed Implementation

[0061] The technical solutions in this application will now be described with reference to the accompanying drawings.

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

[0063] To facilitate understanding of the embodiments of this application, the terms involved in this application will be briefly explained first.

[0064] 1. Software Development Kit (SDK): A collection of development tools used to create application software for specific software packages, software frameworks, hardware platforms, operating systems, etc.

[0065] 2. IMS Session: A service where a communication device, acting as the caller or the called party, connects to one or more other communication devices via network elements in the IMS system for voice or video calls. An IMS session can also be called an IMS call or IMS call, etc.

[0066] 3. Voice calls and video calls: Voice calls refer to calls between participating user devices in an Internet Protocol (IP) Multimedia Subsystem (IMS) session, where real-time audio content is transmitted to achieve voice interaction. Video calls refer to calls between participating user devices in an IMS session, where real-time audio and / or video content is transmitted to achieve video interaction. Voice calls and video calls can be collectively referred to as audio-video calls.

[0067] The following is combined Figure 2This application provides an example of a communication system to which embodiments of this application apply. It should be understood that the communication system described in this application is merely an example and should not be construed as limiting the scope of this application.

[0068] Figure 2 A schematic diagram of a communication system applicable to the methods provided in embodiments of this application is shown. For example... Figure 2 As shown, the communication system may include: terminal equipment, core network and access network, and the terminal equipment can be connected to the core network through the access network.

[0069] Terminal equipment, also known as user equipment (UE), is a device that provides voice / data connectivity to users. Examples include handheld devices and in-vehicle devices with wireless connectivity. Currently, some examples of terminal equipment include: mobile phones, tablets, computers with wireless transceiver capabilities (such as laptops and PDAs), mobile internet devices (MIDs), virtual reality (VR) devices, augmented reality (AR) devices, wireless terminals in industrial control, self-driving cars, remote medical care, smart grids, transportation safety, smart cities, smart homes, cellular phones, cordless phones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, and personal digital assistants (PDAs). The following are examples of terminal devices: assistant (PDA), handheld devices with wireless communication capabilities, computing devices or other processing devices connected to a wireless modem, in-vehicle devices, wearable devices (such as smartwatches, smart bracelets, etc.), terminal devices in 5G networks, or terminal devices in future evolved public land mobile networks (PLMNs).

[0070] Access network: Provides network access for authorized users in a specific area and can use transmission tunnels of different qualities according to the user's level and service requirements. Access networks can employ different access technologies. Current access network technologies include: radio access technologies used in 3G systems, radio access network technologies used in 4G systems, or next-generation radio access network (NG-RAN) technologies (such as those used in 5G systems).

[0071] An access network that uses wireless communication technology to implement access network functions can be called a radio access network (RAN). A RAN manages radio resources, provides access services to terminals, and facilitates the forwarding of control signals and user data between terminals and the core network.

[0072] Wireless access network equipment can be, for example, a base station (NodeB), an evolved NodeB (eNB or eNodeB), a next-generation Node base station (gNB) in a 5G mobile communication system, a base station in a future mobile communication system, or an access point (AP) in a Wi-Fi hotspot system. It can also be a wireless controller in a cloud radio access network (CRAN) scenario, or it can be a relay station, access point, vehicle-mounted equipment, drone, wearable device, or network equipment in a 5G network or an evolved PLMN. This application does not limit the specific technology or equipment form used in the wireless access network equipment.

[0073] The core network can be a 5G core network (5GC) or an evolved packet core (EPC). Figure 2 The core network of China and Israel is 5GC, which will be used as an example for explanation.

[0074] like Figure 2As shown, 5GC may include, but is not limited to: Access and Mobility Management Function (AMF) network elements, Session Management Function (SMF) network elements, Unified Data Management (UDM) network elements, Policy Control Function (PCF) network elements, etc. Among them, AMF network elements are mainly used for mobility management and access management, and are responsible for transmitting user policies between terminal devices and PCF network elements. SMF network elements are mainly used for session management, allocation and management of Internet Protocol (IP) addresses for terminal devices, selection and management of user plane functions, policy control and transceiver function interface endpoints, and downlink data communication. UDM network elements are used to handle terminal device identification, access authentication, registration, and mobility management. PCF is used as a unified policy framework to guide network behavior, providing policy rule information to control plane function network elements (such as AMF, SMF, etc.). Figure 2 In (b), N1, N2, Npcf, Nudm, Namf, and Nsmf are interface sequence numbers. For more information about the network elements included in 5GC and the meaning of these interface sequence numbers, please refer to the definitions in 3rd Generation Partnership Project (3GPP) technical standards (TS) 23.501.

[0075] The Internet Protocol (IP) Multimedia Subsystem (IMS) manages IP packets, distinguishing between the signaling and multimedia data portions of the packets. It provides audio and video services to the UE by processing the multimedia data portion. For a basic overview of the IMS network system architecture, please refer to [link to relevant documentation]. Figure 3 The description in the text will not be elaborated here.

[0076] The network architecture described above for the embodiments of this application is merely an example. The network architecture applicable to the embodiments of this application is not limited to this. Any network architecture capable of implementing the functions of the above-described network elements is applicable to the embodiments of this application. That is, the network architecture and business scenarios described in the embodiments of this application are for the purpose of more clearly illustrating the technical solutions of the embodiments of this application and do not constitute a limitation on the technical solutions provided by the embodiments of this application. As those skilled in the art will know, with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.

[0077] It is also understood that the network elements or devices listed in the above network architecture are merely illustrative examples, and the network architecture applicable to this application may also include other network elements or devices, which are not limited in this application.

[0078] It is also understood that the naming of the aforementioned network elements or devices is defined solely for the purpose of distinguishing different functions and should not constitute any limitation on this application. This application does not preclude the possibility of using other names in 4G networks, 5G networks, and other future networks. For example, in 6G networks, some or all of the aforementioned network elements may use the terminology from 4G / 5G, or may use other names, etc.

[0079] The communication device in this application embodiment includes a hardware layer, an operating system layer running on top of the hardware layer, and an application layer running on the operating system layer. The hardware layer includes hardware such as a central processing unit (CPU), a memory management unit (MMU), and memory (also called main memory). The operating system can be any one or more computer operating systems that implement business processing through processes, such as Linux, Unix, Android, iOS, or Windows. The application layer includes applications such as browsers, address books, word processing software, and instant messaging software. Furthermore, this application embodiment does not specifically limit the specific structure of the execution subject of the method provided in this application embodiment. As long as communication can be performed according to the method provided in this application embodiment by running a program that records the code of the method provided in this application embodiment, for example, the execution subject of the method provided in this application embodiment can be a terminal device or a network device, or a functional module in the terminal device or network device that can call and execute a program.

[0080] Furthermore, various aspects or features of the embodiments of this application can be implemented as methods, apparatus, or articles of manufacture using standard programming and / or engineering techniques. The term "article of manufacture" as used in this application encompasses a computer program accessible from any computer-readable device, carrier, or medium. For example, computer-readable media may include, but are not limited to: magnetic storage devices (e.g., hard disks, floppy disks, or magnetic tapes), optical discs (e.g., compact discs (CDs), digital versatile discs (DVDs), etc.), smart cards, and flash memory devices (e.g., erasable programmable read-only memory (EPROMs), cards, sticks, or key drives, etc.). Additionally, the various storage media described herein may represent one or more devices and / or other machine-readable media for storing information. The term "machine-readable medium" may include, but is not limited to, wireless channels and various other media capable of storing, containing, and / or carrying instructions and / or data.

[0081] Figure 3 This is a schematic diagram illustrating communication between a calling UE and a called UE. The calling UE initiates a telephone call to the called UE, and the called UE receives the call from the calling UE. Figure 3 As shown, when a calling UE calls a called UE, the calling UE will send call request information to the called UE through access network A, core network A, core network B, and access network B. Access network A and core network A provide services to the calling UE; access network A can be a 5G access network, 4G access network, 3G access network, or 2G access network, and core network A can be a 5GC, EPC, 3G core network, or 2G core network. Access network B and core network B provide services to the called UE; access network B can be a 5G access network, 4G access network, 3G access network, or 2G access network, and core network B can be a 5GC, EPS, 3G core network, or 2G core network. Access network A and access network B can be the same access network or different access networks, and core network A and core network B can be the same core network or different core networks.

[0082] It should be noted that if core network A is 5GC or EPC, then core network A sends the aforementioned call request information to core network B through IMS A. IMS A is used to provide services to the calling UE. If core network B is 5GC or EPC, then core network B receives the aforementioned call request information from core network A through IMS B. IMS B is used to provide services to the called UE. IMS A and IMS B can be the same IMS or different IMSs.

[0083] If core network A is a 3G or 2G core network, core network A can send the aforementioned call request information to core network B through its circuit-switched (CS) domain. If core network B is a 3G or 2G core network, core network B can receive the aforementioned call request information from core network A through its CS domain.

[0084] The following is combined Figure 4 This section introduces the basic architecture of the current IMS network system. IMS, introduced by the 3rd Generation Partnership Project (3GPP) on the basis of the existing packet-switched network, is an open system based on IP that provides users with various multimedia services. It not only offers traditional voice services but also provides users with a rich multimedia experience. For example... Figure 4 As shown, some network element functions in the IMS network system are as follows:

[0085] 1. Call Session Control Function (CSCF) Network Element: The CSCF is a functional entity within IMS and is the core of the entire IMS. It is primarily responsible for handling signaling control during multimedia call sessions. It manages IMS user authentication, IMS bearer plane quality of service (QoS), control of session initiation protocol (SIP) sessions in cooperation with other network elements, as well as service negotiation and resource allocation. For ease of description, the CSCF network element in this application will be referred to as "CSCF".

[0086] The CSCF can communicate with terminal devices and gateway devices. For example, the CSCF can select the gateway device to communicate with the terminal device, and it can assign routing information, such as IP addresses or ports, to the terminal device and the gateway device.

[0087] For example, CSCFs can be further divided into proxy-call session control functions (P-CSCF), interrogating-call session control functions (I-CSCF), and serving-call session control functions (S-CSCF). The P-CSCF is the entry point for users accessing the IMS network, primarily responsible for forwarding SIP signaling between the IMS user and its home network. The I-CSCF is the unified entry point for the IMS user's home network, responsible for allocating or querying S-CSCFs serving the user. The S-CSCF is also the unified entry point for the IMS user's home network, responsible for allocating or querying S-CSCFs serving the user.

[0088] It is understood that the aforementioned P-CSCF, S-CSCF, and I-CSCF can be configured independently in different entities or integrated into the same entity, and this application does not impose any limitations on this.

[0089] 2. MultiMedia Telephony Application Server (MMTelAS): MMTelAS is an application-layer device located at the upper layer of the IMS system. MMTelAS provides users with various services, such as basic voice and video call services, as well as various supplementary services, including personalized ringback tones, call forwarding, and voicemail. It is the server that implements specific services. MMTelAS interacts with CSCF to trigger and execute various services.

[0090] Figure 4 The CCP consists of n (n is an integer greater than 2) ASs, each providing different MMTel services. For example, Figure 4 The supplementary services in the system correspond to ASs including Voice over Long-Term Evolution (VoLTE) AS, Virtual Private Network (VPN) AS, Color Printing AS, and Video Ringback Tone AS, etc.

[0091] 3. Home Subscriber Server (HSS): The HSS records user information and service data for each IMS user, works with the CSCF to perform routing functions, and provides authentication and authorization functions. User subscription data is stored in the HSS and downloaded to the S-CSCF during user registration. The user subscription data contains the user's initial filter criteria (IFC) and the address information of the AS providing the service. Service data is downloaded from the HSS to the AS during user registration for use by the AS to complete user service processing. The functions of the HSS can be implemented by a unified data management (UDM) device.

[0092] like Figure 4 As shown, when the calling UE initiates a call to the called UE, the calling UE can send an Initial Session Protocol Call Request (SIP invite) message to the S-CSCF through the P-CSCF. The S-CSCF can download the pre-statically configured IFC message for the calling UE from the HSS, and determine which supplementary services are triggered in this call according to the IFC triggering mechanism. The corresponding AS provides the supplementary services.

[0093] The methods provided in the embodiments of this application will be described in detail below with reference to the accompanying drawings.

[0094] Figure 5 This is a schematic diagram illustrating a method for enhancing real-time call services provided in an embodiment of this application. The method may include the following steps.

[0095] S510, when the first terminal device calls the second terminal device, the first SDK negotiates with the first server to establish a first data channel, wherein the first SDK is deployed in the first terminal device, and the first server is used to provide media information for the user of the first terminal device based on call-enhanced services.

[0096] It is understood that in this embodiment, the first terminal device can also be called the calling terminal device, and the second terminal device can also be called the called terminal device.

[0097] In this application, the first SDK, also known as the call enhancement SDK, is newly deployed on the first terminal device to provide a library that can be integrated by various apps on the first terminal device. It should be noted that the second terminal device can be a terminal device with the SDK installed or a terminal device without the SDK installed; this application does not limit this.

[0098] In this application, the first server may also be referred to as an enhanced call server, which is newly deployed in the PS network to provide a series of call-based enhanced services for terminal devices, and the first server contains media information of the series of call-based enhanced services provided.

[0099] For example, the first server can be deployed on a general-purpose server in the cloud, or it can be deployed on top of or independently on a network element server within the telecommunications domain.

[0100] For example, call-based enhancement services include one or more of the following: desktop sharing, remote collaboration, touch interaction, real-time tagging, multi-party audio and video calling, etc.

[0101] It should be understood that the first server can establish corresponding data channels with multiple terminal devices and assign a new channel identifier to each data channel. For example, when the SDK in the third terminal device calls the fourth terminal device, it also negotiates with the first server to establish a second data channel.

[0102] It should be understood that at the same time as the first data channel is established, the first terminal device and the second terminal device also complete the establishment of the native voice signaling channel.

[0103] S520, the first AS sends the first information to the first server. Correspondingly, the first server receives the first information from the first AS.

[0104] The first information includes a session identifier and a first call state, wherein the session identifier is a session identifier between the first terminal device and the second terminal device, and the first call state is the current call state of the first terminal device and the second terminal device. The first information is used to trigger the first server to send media information for one or more enhanced services to the first SDK through a first data channel. The one or more enhanced services are enhanced services provided by a first service in the first call state, wherein the first service is a service provided by the second terminal device to the first terminal device through the first AS. A first association exists between the first data channel and the session identifier.

[0105] The first AS can be any AS from the basic service and supplementary service AS. For example, the first AS could be VoLTE AS, VPN AS, color printing AS, video ringback tone AS, etc.

[0106] Optionally, before S520, the first AS needs to request the first association relationship from the first server. In that case, the method also includes S5201 and S5202.

[0107] S5201, the first AS sends a first request message to the first server. The first request message includes a session identifier and is used to request that a data channel be associated with the session identifier. Correspondingly, the first server receives the first request message from the first AS.

[0108] It should be understood that the session identifier here refers to the session identifier between the first terminal device and the second terminal device in S520.

[0109] S5202, the first AS receives a first request-response message from the first server, the first request-response message including a first association relationship. Correspondingly, the first server sends a first request-response message to the first AS.

[0110] Optionally, the first request message may also include one or more call states. The multiple call states indicate various call states that exist between the first terminal device and the second terminal device. If the first call state is one of the one or more call states, then the first server will associate the session identifier and one or more call states in the first request message with the first data channel.

[0111] For example, call status includes pre-ringing (the calling terminal device initiates a call but has not yet rang), ringing (the calling terminal device receives the ringback tone), in call (the calling terminal device and the called terminal device are in the process of talking), call ended (the calling terminal device and the called terminal device finish talking and the called party hangs up first), and call failed (the calling party calls the called party, but the called party's phone is off, or the call cannot be connected due to reasons such as unpaid bills or poor network). Different call statuses correspond to different call scenarios.

[0112] It is understandable that when the first request message does not include the call status, it can be assumed that the first AS requests the first server to establish a first association relationship between the session identifier, all existing call statuses, and the first data channel. When the first request message includes the call status, it can be assumed that the first AS requests the first server to establish a first association relationship between the session identifier, one or more indicated call statuses, and the first data channel.

[0113] It should be understood that different ASs can only provide corresponding AS services in the scenarios they are suited for. Therefore, the call statuses included in the first request messages sent by different ASs may be different. For example, if the first AS is a video ringback tone AS, since the video ringback tone service can only be provided before the call between the first terminal device and the second terminal device is connected, then one or more statuses in the first request message sent by the video ringback tone AS cannot include call statuses such as in progress or call ended.

[0114] It should also be understood that the first data channel can only associate with the information in the first request message sent by one AS at a time to establish a first association relationship. Afterwards, subsequent operations of the native call enhancement services of the two terminal devices, the first server, and the first AS are completed based on this association relationship. After the AS releases its association with the first data channel, other ASes can also establish associations with the first data channel.

[0115] In a specific implementation scenario, when the called terminal device rings, it sends a 180 ringing message to the calling terminal device. When the first AS service system in the IMS network receives the 180 ringing message, if it needs to provide call enhancement capabilities to the calling terminal device, it continues to execute S5201 and S5202. Afterwards, when the first AS determines that it needs to provide enhanced services based on the call scenario, it can initiate a request to establish a data channel association to the first server, i.e., execute S520. If the first AS does not need to add call enhancement capabilities, it can directly process it according to the existing service capabilities of the first AS.

[0116] S530, the first server sends second information to the first SDK through the first data channel. The second information includes media information for one or more enhanced services. The one or more enhanced services are enhanced services provided by the second terminal device for the first service in the first call state. The first service is a service provided by the second terminal device to the first terminal device through the first AS. Correspondingly, the first SDK receives the second information from the first server.

[0117] For example, media information includes interactive action icons, the corresponding operation scripts, icon names, and the media content to be played.

[0118] It should be understood that the second information is determined based on the first information. Specifically, the first server uses the first association relationship to find the first data channel based on the session identifier and call status carried in the first information by the first AS, and then sends the media information of one or more enhanced services corresponding to the first call status to the first SDK through the first data channel.

[0119] S540, the first SDK sends third information to the first server via the first data channel. The third information includes an identifier for a first enhanced service, which is the service selected by the user of the first terminal device from one or more enhanced services displayed on the interface. Correspondingly, the first server receives the third information from the first SDK via the first data channel.

[0120] Optionally, the media information of the first enhanced service includes an icon of the first enhanced service. Prior to S540, the method further includes:

[0121] S550, the first terminal device displays icons for one or more enhanced services contained in the second information on the interface of the first terminal device.

[0122] It is understandable that the multiple icons here can be regarded as a first-level menu, that is, the first AS can provide a variety of enhanced services in the first call state. So, when the user of the first terminal device touches the icon to be selected on the screen, the first terminal device captures the touch event and executes S540.

[0123] S560, the first server sends fourth information to the first AS, the fourth information including the identifier of the first enhanced service.

[0124] It should be understood that the third information needs to carry the identifier of the first data channel. The reason is that the first server needs to determine the corresponding session identifier based on the identifier of the first data channel and the first association relationship, and inform the first AS of the session identifier and the identifier of the first enhanced service, so that the first AS can determine based on the session identifier that the first enhanced service is a call enhancement service applied between the first terminal device and the second terminal device.

[0125] S570, the first AS and the first server perform interactive operations of the first enhanced service between the first terminal device and the second terminal device based on the first association relationship in the first call state.

[0126] This example illustrates how subsequent interactions with the first enhanced service can be performed based on the first association relationship: The first AS can send first information to the first server. The first server, based on the first information and the first association relationship, finds the first data channel and forwards the interaction information from the second terminal device in response to the first enhanced service to the first terminal device through the first data channel. Similarly, the first terminal device can also send interaction information in response to the first enhanced service to the first server based on the first data channel. The first server can determine a session identifier based on the first data channel and the first association relationship, and inform the first AS of this session identifier, so that the first AS can forward the interaction information from the first terminal device in response to the first enhanced service to the second terminal device.

[0127] It is understood that subsequent interactions include, but are not limited to, the following interaction processes: the preloading process of media information of the first enhancement service, the process of the first server notifying the first terminal device to display the media information of the first enhancement server (e.g., displaying an icon), the release process of the first data channel requested by the first AS, and the first server reporting the touch operation events of the first terminal device to the first AS.

[0128] It should be noted that the interaction processes of different enhancement services may differ slightly. This will be illustrated with specific examples of enhancement services below, and will not be elaborated upon here.

[0129] In the above technical solution, various services provided by the AS in the IMS network can be overlaid with the call enhancement server capabilities, uniformly adding touch interaction and other capabilities to the original services. This solution does not rely on modifying the terminal's native voice call functionality, but rather integrates a lightweight call enhancement SDK. Leveraging the high bandwidth and low latency characteristics of the existing 5G network, it provides users with richer call enhancement services beyond just voice calls by building upon the existing call experience with a new data transmission channel, significantly improving the user's native call experience. The following section describes the method provided in this application... Figures 5 to 7 The specific process for enhancing real-time communication is described in detail.

[0130] Figure 6 This diagram illustrates a specific method for enhancing real-time call services provided in this application. In this method, the enhanced service to be implemented during a native voice call is ultimately selected as desktop sharing. When UE1 (an example of a first terminal device) calls UE2 (an example of a second terminal device), UE1 can simultaneously push desktop sharing content to UE2 during the call. The method may include the following steps.

[0131] S601~S602, UE1 calls UE2 through the IMS network.

[0132] S603, while UE1 is calling UE2, it simultaneously sends an authorization and authentication request to the call enhancement server (i.e., an example of the first server) through the call enhancement SDK (i.e., an example of the first SDK).

[0133] S604, the call enhancement server sends an authorization code to UE1.

[0134] S605, UE1 carries the authorization code and relevant information of UE1 to the call enhancement server for access authentication.

[0135] For example, the relevant information for UE1 can be the International Mobile Equipment Identity (IMEI), APPID, or login user information.

[0136] S606, the call enhancement server sends a session token for the connection to UE1.

[0137] S607, UE1 establishes a stateful (time-limited link) data channel #1 with the call enhancement server through the session token, and a new channel identifier is assigned.

[0138] S608, while the data channel is being established, UE1 is also simultaneously establishing a native voice signaling channel with UE2.

[0139] S609, when UE2 rings, a 180 ringing message is sent to the calling UE1. When AS#1 (i.e., an example of the first AS) in the IMS network receives the 180 ringing message, if it needs to provide call enhancement capabilities to the calling party, it will continue to the next step; if AS#1 does not need to provide call enhancement capabilities, it can be processed directly according to the existing AS#1 service capabilities.

[0140] After S610, UE2 goes off-hook and UE1 and UE2 complete normal signaling interaction and then begin a call.

[0141] S611, when AS#1 needs to provide enhanced services, it can initiate a data channel association request to the call enhancement server (i.e., an example of the first request message). The request includes call state #1 (i.e., an example of the first call state) and session ID #1 carried by AS (i.e., an example of the session identifier). The call enhancement server establishes an association between call state #1, session ID #1 carried by AS, and channel identifier of data channel #1. Based on this association, subsequent operations of the terminal device, call enhancement server, and AS#1's native call enhancement service experience are completed.

[0142] For example, call status #1 here is in progress.

[0143] S612: AS#1 determines the call enhancement service feature that needs to be provided based on the call scenario. AS#1 sends request #1 to the call enhancement server, carrying the session ID #1 and call status #1.

[0144] S613: The call enhancement server uses the association relationship to find the data channel #1 corresponding to the channel identifier based on the session ID #1 and call status #1 carried by AS #1 in request #1. Through the data channel #1, it pushes the icons of one or more enhancement services corresponding to the defined call status #1, the operation scripts corresponding to the icons, the icon names, the media content to be played, and other media information to UE1 for preloading.

[0145] S614: While AS#1 completes the media information push to UE1, it sends a notification function display message to the call enhancement server. The notification includes the session ID#1 and call status#1 carried by AS#1.

[0146] S615: The call enhancement server uses the association relationship to find the data channel #1 corresponding to the channel identifier based on the session ID #1 and call status #1 carried in AS#1 in the notification, and notifies UE1 through data channel #1 to display the content preloaded in S613 on the terminal.

[0147] S616: When a user of UE1 touches the desktop sharing icon (i.e., an example of the first enhancement server) on the screen, UE1 captures the terminal touch event, reports the desktop sharing indication corresponding to the user touch event to the call enhancement server, and carries the identifier of data channel #1 when reporting the event.

[0148] S617: The call enhancement server uses the channel identifier carried by UE1 to find the corresponding session ID#1 carried by AS#1 based on the association relationship, and reports the desktop sharing instruction to the AS#1 corresponding to this session ID#1.

[0149] S618: AS#1 resolution is a desktop sharing instruction sent by UE1, which initiates an invitation to UE2 for media negotiation, notifying UE2 to open the video window.

[0150] S619: After AS#1 and UE2 successfully negotiate, AS#1 sends a request to obtain shared content to the call enhancement server. The request includes the session ID#1 and call status#1 carried by AS#1.

[0151] S620: The call enhancement server uses the association relationship to find the data channel #1 corresponding to the channel identifier based on the session ID #1 and call status #1 carried in AS#1 in the request, and sends the request content to UE1 through data channel #1.

[0152] S621: After UE1 receives the request, a pop-up window is displayed to the user of UE1 to prompt the user whether to share the current desktop, or the user selects file sharing. After the user operates on the desktop that needs to be shared, UE1 collects the media information stream of this desktop and reports it to the call enhancement server.

[0153] It should be understood that this step can not only collect desktop or file media data, but also collect media information marked by the user, and package them together and report them to the call enhancement server. This allows UE1 to annotate media information to UE2 in real time.

[0154] S622: The call enhancement server transcodes the desktop media information stream data reported by UE1 and compresses it into a video media format stream supported by the IMS network. Then, through the media channel of UE2 negotiated in S618, it sends the converted media information stream of UE1's shared desktop to UE2.

[0155] S623: When UE1 touches the button to turn off shared desktop, UE1 captures the terminal touch event, reports the corresponding instruction to turn off desktop sharing to the call enhancement server, and carries the identifier of data channel #1 when reporting the event.

[0156] S624: The call enhancement server uses the channel identifier of data channel #1 carried by UE1 to find the corresponding session ID #1 carried by AS#1 based on the association relationship, and reports the shutdown desktop sharing instruction to the AS#1 corresponding to this session ID #1.

[0157] S625: AS#1 initiates an invite negotiation with UE2 to close the video window opened in S618.

[0158] S626: AS#1 initiates a release request to the call addition server to release the association between the previously established session ID#1 and data channel#1. The release request includes the session ID#1 and call status#1 carried by AS#1.

[0159] S627: The call enhancement server uses the association relationship to find the data channel #1 corresponding to the channel identifier based on the session ID #1 and call status #1 carried in the release request AS#1, and sends a release data channel #1 connection request to UE1 through data channel #1. After that, UE1 releases the connection with data channel #1.

[0160] For example, if the association in all embodiments of this application is associated with multiple call states, then AS#1 can release data channel #1 after the latest call state among the multiple call states ends.

[0161] For example, in all embodiments of this application, UE1 may also release data channel #1 after hanging up, and this application does not limit this.

[0162] S628: UE1 and UE2 continue the normal native voice call process.

[0163] It should be noted that enabling or disabling desktop sharing does not affect the normal native voice call process between UE1 and UE2.

[0164] It should be understood that the above process can also support sharing the desktop with multiple users in a call simultaneously; the specific process will not be elaborated here.

[0165] Figure 7 This application provides a schematic diagram of another specific method for enhancing real-time call services. In this method, the enhanced service implemented in the native voice call is a touch interaction service. When UE1 (an example of a first terminal device) calls UE2 (an example of a second terminal device), a touch interaction menu can be pushed to UE1 simultaneously during the ringing period. UE1 can watch the native video while the phone is ringing, and also supports touch interaction capabilities (such as liking, ordering, jumping, closing, sharing, etc.). This method may include the following steps.

[0166] The descriptions of S701 to S709 are found in S601 to S609 and will not be repeated here.

[0167] S710, when AS#1 needs to provide enhanced services, it can initiate a request to establish a data channel #1 association (i.e., an example of the first request message) to the call enhancement server. This request includes call state #1 (i.e., an example of the first call state) and session ID #1 carried by AS (i.e., an example of the session identifier). The call enhancement server establishes an association between call state #1, session ID #1 carried by AS, and channel identifier of data channel #1. Based on this association, subsequent operations of the terminal device, call enhancement server, and AS#1's native call enhancement service experience are completed.

[0168] For example, call status #1 here is in the ringing process.

[0169] S711: AS#1 determines the call enhancement service feature that needs to be provided based on the call scenario. AS#1 sends request #1 to the call enhancement server, carrying the session ID #1, call status #1 and the media content ID being played (i.e., the native video ID).

[0170] S712: The call enhancement server queries the corresponding interactive action button icon, icon operation and icon name, and media content played, etc., based on the call status #1 and media content ID. At the same time, the call enhancement server uses the association relationship to find the data channel #1 corresponding to the channel identifier based on the session ID #1 and call status #1 carried in AS#1 in the request, and pushes the media information to UE1 for preloading through the data channel #1.

[0171] S713: AS#1 and UE1 negotiate to open the audio and video media channel. After the negotiation is successful, proceed to the next step.

[0172] It should be noted that this step and S711 to S712 have no timing restrictions and can be executed simultaneously.

[0173] S714: While AS#1 completes the media information push to UE1, it sends a notification function display message to the call enhancement server. The notification includes the session ID#1 and call status#1 carried by AS#1.

[0174] S715: The call enhancement server uses the association relationship to find the data channel #1 corresponding to the channel identifier based on the session ID #1 and call status #1 carried in AS#1 in the notification, and notifies UE1 through data channel #1 to display the content preloaded in S712 on the terminal.

[0175] S716: When the user of UE1 touches the interactive action button on the screen, UE1 captures the touch event, reports the corresponding action of the user touch event to the call enhancement server, and carries the identifier of data channel #1 when reporting the event.

[0176] The following is a detailed description of how the call enhancement server obtains user touch actions and matches the corresponding response operations.

[0177] 1) If it is a like action (including like and unlike operations), according to the action operation instructions, if it is a like operation, the total number of likes for this media content will be returned to UE1; if it is a unlike operation, the cumulative number of likes will be decremented by 1.

[0178] 2) If it is an ordering action (including ordering and canceling orders), according to the ordering operation instructions, if it is an ordering operation, the ordering operation interface will be executed; if it is a canceling order operation, the canceling order operation interface will be executed.

[0179] 3) If it is a redirection action (including redirection operation), the redirection operation instruction will be followed. If it is a redirection to another webpage, the redirection URL address will be sent to UE1 according to the media content and the appropriate Uniform Resource Locator (URL) address configured in call state #1. UE1 will then perform the redirection operation based on the URL address information.

[0180] 4) If it is a sharing action (including sharing and canceling sharing operations), depending on the sharing action, if it is sharing local system information, UE1 will transmit the sharing local file information to the call enhancement server through the established data channel #1. The call enhancement server will then send a notification to UE2 with a link to the shared file, which UE2 can click to download the shared file from the call enhancement server. If it is canceling sharing, UE1 will delete the file content shared on the call enhancement server.

[0181] 5) If it is a shutdown action, UE1 will close the media window or operation window of the call enhancement server and report the shutdown action to the call enhancement server.

[0182] After UE1 reports each touch action to the call enhancement server, the call enhancement server instructs UE1 to complete the corresponding operation defined by the corresponding icon. UE1 can touch the icon multiple times, and the call enhancement server repeats S712 to S717 until the interaction service ends.

[0183] S717: The call enhancement server finds session ID#1 based on the channel identifier carried by UE1 and uses the association relationship. It then reports the interaction action results (action behavior, corresponding number of times) to AS#1 corresponding to this session ID#1. AS#1 can complete its own business-related processing (such as statistics, ordering, etc.) based on the reported results.

[0184] S718: When UE2 goes off-hook to answer a call, it sends an off-hook 200 OK message to AS#1.

[0185] S719: AS#1 and UE1 negotiate to close the audio and video media channel.

[0186] S720: AS#1 transmits the off-hook 200 OK message from UE2 to UE1, resuming the call between UE1 and UE2.

[0187] S721: When UE1 initiates a call, AS#1 determines that data channel #1 needs to be closed based on the current call status. Then, AS#1 sends a release request to the call addition server to release the association between the session and data channel #1 established in S710. The release request includes the session ID #1 and call status #1 carried by AS#1.

[0188] S722: The call enhancement server uses the association relationship to find the data channel #1 corresponding to the channel identifier based on the session ID #1 and call status #1 carried in the release request AS#1, and sends a release data channel #1 connection request to UE1 through data channel #1. After that, UE1 releases the connection with data channel #1 and closes the interactive display on UE1.

[0189] S723: UE1 and UE2 confirm the message via ACK, and then continue the normal native voice call process.

[0190] Figure 8 This diagram illustrates another specific method for enhancing real-time call services provided in this application. In this method, the enhanced service implemented in the native voice call is a remote collaboration service. When UE1 (an example of a first terminal device) calls UE2 (an example of a second terminal device), UE1 can annotate the media content shared by UE2 with itself in real time during the call, and then return the annotated media content to UE2, achieving the purpose of remote collaboration. This method may include the following steps.

[0191] S801 to S815 are described in S601 to S615, and will not be repeated here.

[0192] S816: When a user of UE1 touches the remote collaboration (i.e., an example of the first enhancement server) icon on the screen, the terminal device captures the touch event, reports the remote collaboration indication corresponding to the user touch event to the call enhancement server, and carries the data channel #1 identifier when reporting the event.

[0193] S817: The call enhancement server uses the channel identifier carried by UE1 to find the corresponding session ID#1 carried by AS#1 based on the association relationship, and reports the remote collaboration instruction to the AS#1 corresponding to this session ID#1.

[0194] S818: AS#1 resolution is a remote collaboration instruction sent by UE1, which initiates an invite media negotiation to UE2 and notifies UE2 to open the video window.

[0195] S819: UE1 calls and instructs UE2 to share media content that requires guidance from UE1. Taking video as an example, UE2 is a native voice terminal, so it only supports video streams captured by the front or rear camera. The call enhancement server collects the media video stream reported by UE2.

[0196] S820: The call enhancement server encodes and adapts the video media stream reported by UE2 collected from the native IMS network and sends it to UE1 through data channel #1.

[0197] S821: UE1 displays the video media stream that UE2 needs to guide to UE2 to UE1's user. After UE1 marks and annotates the media video stream that needs guidance in real time, it reports it to the call enhancement server.

[0198] S822: The call enhancement server transcodes the media video stream data of UE2, which has been marked and annotated in real time and reported by UE1, and compresses it into a video media format stream supported by the IMS network. Then, it sends the converted media video stream to UE2 through the media channel of UE2 negotiated in S818.

[0199] S823: When the user of UE1 touches the button to turn off remote collaboration, UE1 captures the terminal touch event, reports the corresponding action of the user touch event to the call enhancement server, and carries the identifier of data channel #1 when reporting the event.

[0200] S824: The call enhancement server uses the channel identifier carried by UE1 to find the corresponding session ID#1 carried by AS#1 based on the association relationship, and reports the instruction to disable desktop sharing to AS#1 corresponding to this session ID#1.

[0201] S825: AS#1 initiates an invite negotiation with UE2 to close the media window.

[0202] S826: When UE2 closes the media window, AS#1 sends a release request to the call addition server to release the association between the previously established session ID#1 and data channel#1. The release request includes the session ID#1 and call status#1 carried by AS#1.

[0203] S827: The call enhancement server uses the association relationship to find the data channel #1 corresponding to the channel identifier based on the session ID #1 and call status #1 carried in the release request AS#1, and sends a release data channel #1 connection request to UE1 through data channel #1. After that, UE1 releases the connection with data channel #1.

[0204] S828: UE1 and UE2 continue the normal native voice call process.

[0205] It should be understood that the sequence number of each process does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.

[0206] It should also be understood that, in the various embodiments of this application, unless otherwise specified or in case of logical conflict, the terms and / or descriptions between different embodiments are consistent and can be referenced by each other, and the technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationships.

[0207] It should also be understood that the above embodiments are mainly illustrated using devices in existing network architectures as examples. It should be understood that the specific form of the device is not limited in the embodiments of this application. For example, any device that can achieve the same function in the future is applicable to the embodiments of this application.

[0208] It is understood that in the above-described method embodiments, the methods and operations implemented by the device (such as the first SDK, the first server, the first AS, etc.) can also be implemented by the device's components (such as chips or circuits).

[0209] The above, combined with Figures 1 to 8 The methods provided in the embodiments of this application are described in detail. The above methods are mainly described from the perspective of the interaction between terminal devices and network devices. It is understood that, in order to achieve the above functions, the first SDK, the first server, and the first AS include the corresponding hardware structures and / or software modules for executing each function.

[0210] Those skilled in the art will recognize that, based on the units and algorithm steps described in conjunction with the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is implemented in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0211] The following, combined with Figure 9 and Figure 10 This application provides a detailed description of the communication device provided in its embodiments. It should be understood that the descriptions of the device embodiments correspond to the descriptions of the method embodiments; therefore, any content not described in detail can be found in the above method embodiments. For brevity, some content is omitted. This application can divide terminal devices or network devices into functional modules based on the above method examples. For example, functional modules can be divided according to each function, or two or more functions can be integrated into one processing module. The integrated modules can be implemented in hardware or as software functional modules. It should be noted that the module division in this application is illustrative and only represents one logical functional division; other division methods may exist in actual implementation. The following description uses the division of functional modules according to each function as an example.

[0212] The data transmission method provided in this application has been described in detail above. The communication device provided in this application is described below. In one possible implementation, the device is used to implement the steps or processes corresponding to the first SDK in the above method embodiments. In another possible implementation, the device is used to implement the steps or processes corresponding to the first server in the above method embodiments. In yet another possible implementation, the device is used to implement the steps or processes corresponding to the first AS in the above method embodiments.

[0213] Figure 9 This is a schematic block diagram of the communication device 200 provided in an embodiment of this application. Figure 9 As shown, the device 200 may include a communication unit 210 and a processing unit 220. The communication unit 210 can communicate with the outside world, and the processing unit 220 is used for data processing. The communication unit 210 may also be referred to as a communication interface or a transceiver unit.

[0214] In one possible design, the device 200 can implement the steps or processes corresponding to the execution of the first SDK in the above method embodiments, wherein the processing unit 220 is used to perform processing-related operations of the first SDK in the above method embodiments, and the communication unit 210 is used to perform sending-related operations of the first SDK in the above method embodiments.

[0215] In another possible design, the device 200 can implement the steps or processes corresponding to those performed by the first server in the above method embodiments, wherein the communication unit 210 is used to perform the receiving-related operations of the first server in the above method embodiments, and the processing unit 220 is used to perform the processing-related operations of the first server in the above method embodiments.

[0216] In another possible design, the device 200 can implement the steps or processes corresponding to the first AS executed in the above method embodiment, wherein the communication unit 210 is used to perform the receiving-related operations of the first AS in the above method embodiment, and the processing unit 220 is used to perform the processing-related operations of the first AS in the above method embodiment.

[0217] It should be understood that the device 200 here is embodied in the form of a functional unit. The term "unit" here can refer to an application-specific integrated circuit (ASIC), electronic circuitry, a processor (e.g., a shared processor, a proprietary processor, or a group processor, etc.) and memory for executing one or more software or firmware programs, integrated logic circuitry, and / or other suitable components supporting the described functions. In an alternative example, those skilled in the art will understand that the device 200 may specifically be the first SDK in the above embodiments, used to execute the various processes and / or steps corresponding to the first SDK in the above method embodiments; or, the device 200 may specifically be the first server in the above embodiments, used to execute the various processes and / or steps corresponding to the first server in the above method embodiments; or, the device 200 may specifically be the first AS in the above embodiments, used to execute the various processes and / or steps corresponding to the first AS in the above method embodiments. To avoid repetition, further details are omitted here.

[0218] The apparatus 200 of each of the above-described solutions has the function of implementing the corresponding steps executed by the first SDK in the above-described method; or, the apparatus 200 of each of the above-described solutions has the function of implementing the corresponding steps executed by the first server in the above-described method; or, the apparatus 200 of each of the above-described solutions has the function of implementing the corresponding steps executed by the first AS in the above-described method. The functions can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions; for example, a communication unit can be replaced by a transceiver (e.g., the sending unit in the communication unit can be replaced by a transmitter, and the receiving unit in the communication unit can be replaced by a receiver), and other units, such as processing units, can be replaced by a processor, respectively executing the sending and receiving operations and related processing operations in each method embodiment.

[0219] Furthermore, the aforementioned communication unit can also be a transceiver circuit (e.g., it may include a receiving circuit and a transmitting circuit), and the processing unit can be a processing circuit. In embodiments of this application, Figure 9 The device in this context can be the first SDK, first server, or first AS as described in the preceding embodiments, or it can be a chip or a chip system, such as a system-on-a-chip (SoC). The communication unit can be an input / output circuit or a communication interface; the processing unit is a processor, microprocessor, or integrated circuit integrated on the chip. No limitations are imposed here.

[0220] Figure 10 This is a schematic block diagram of a communication device 300 provided in an embodiment of this application. The device 300 includes a processor 310 and a transceiver 320. The processor 310 and the transceiver 320 communicate with each other through an internal connection path. The processor 310 is used to execute instructions to control the transceiver 320 to transmit and / or receive signals.

[0221] Optionally, the device 300 may further include a memory 330, which communicates with the processor 310 and transceiver 320 via an internal connection path. The memory 330 stores instructions, and the processor 310 can execute the instructions stored in the memory 330. In one possible implementation, the device 300 is used to implement the various processes and steps corresponding to the first SDK in the above method embodiments. In another possible implementation, the device 300 is used to implement the various processes and steps corresponding to the first server in the above method embodiments. In yet another possible implementation, the device 300 is used to implement the various processes and steps corresponding to the first AS in the above method embodiments.

[0222] It should be understood that the device 300 may specifically be the first SDK, the first server, or the first AS in the above embodiments, or it may be a chip or a chip system. Correspondingly, the transceiver 320 may be the transceiver circuit of the chip, which is not limited here. Specifically, the device 300 may be used to execute the various steps and / or processes corresponding to the first SDK, the first server, or the first AS in the above method embodiments.

[0223] Optionally, the memory 330 may include read-only memory and random access memory, and provide instructions and data to the processor. A portion of the memory may also include non-volatile random access memory. For example, the memory may also store device type information. The processor 310 may be used to execute instructions stored in the memory, and when the processor 310 executes instructions stored in the memory, the processor 310 is used to perform the various steps and / or processes of the method embodiments corresponding to the first SDK, the first server, or the first AS described above.

[0224] In implementation, each step of the above method can be completed by integrated logic circuits in the processor's hardware or by instructions in software. The steps of the method disclosed in the embodiments of this application can be directly implemented by a hardware processor, or by a combination of hardware and software modules in the processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method. To avoid repetition, detailed descriptions are omitted here.

[0225] It should be noted that the processor in the embodiments of this application can be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method embodiments can be completed by the integrated logic circuitry in the processor's hardware or by instructions in software form. The processor can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The processor in the embodiments of this application can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied as being executed by a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory; the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above methods.

[0226] It is understood that the memory in the embodiments of this application can be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory. The non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The volatile memory can be random access memory (RAM), which is used as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM). It should be noted that the memory used in the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0227] It should be noted that when the processor is a general-purpose processor, DSP, ASIC, FPGA, or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component, the memory (storage module) can be integrated into the processor.

[0228] In addition, this application also provides a computer-readable storage medium storing computer instructions, which, when executed on a computer, cause operations and / or processes performed by a first SDK, a first server, or a first AS in the various method embodiments of this application to be executed.

[0229] This application also provides a computer program product, which includes computer program code or instructions. When the computer program code or instructions are run on a computer, the operations and / or processes performed by the first SDK, the first server, or the first AS in the various method embodiments of this application are executed.

[0230] Furthermore, this application also provides a chip including a processor. A memory for storing a computer program is provided independently of the chip, and the processor is used to execute the computer program stored in the memory such that operations and / or processes performed by a first SDK, a first server, or a first AS in any method embodiment are performed.

[0231] Furthermore, the chip may also include a communication interface. The communication interface may be an input / output interface or an interface circuit, etc. Furthermore, the chip may also include a memory.

[0232] In addition, this application also provides a communication system, including a first terminal device containing a first SDK, a first server, a first AS, and a second terminal device as described in the embodiments of this application.

[0233] It should also be noted that the memory described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0234] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application. Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here. In the several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative; for example, the division of units is merely a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the displayed or discussed mutual coupling or direct coupling or communication connection may be through some interfaces; the indirect coupling or communication connection of devices or units may be electrical, mechanical, or other forms. The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs. Furthermore, the functional units in the various embodiments of this application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0235] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.

[0236] It should be understood that the term "embodiment" used throughout this specification means that a specific feature, structure, or characteristic related to an embodiment is included in at least one embodiment of this application. Therefore, various embodiments throughout this specification do not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments.

[0237] It should also be understood that the ordinal numbers such as "first" and "second" mentioned in the embodiments of this application are used to distinguish multiple objects, and are not used to limit the size, content, order, timing, priority, or importance of multiple objects. For example, first information and second information do not indicate differences in the amount of information, content, priority, or importance.

[0238] It should also be understood that in this application, “when…”, “if” and “if” all refer to the network element making a corresponding processing under certain objective circumstances, and are not time-limited, nor do they require the network element to make a judgment when it is implemented, nor do they mean that there are other limitations.

[0239] It should also be understood that, in this application, "at least one" means one or more, and "more than one" means two or more. "At least one item" or similar expressions mean one or more items, that is, any combination of these items, including any combination of single items or multiple items. For example, at least one of a, b, or c means: a, b, c, a and b, a and c, b and c, or a and b and c.

[0240] It should also be understood that expressions such as "the item includes one or more of the following: A, B, and C" appearing in this application generally mean, unless otherwise specified, that the item can be any one of the following: A; B; C; A and B; A and C; B and C; A, B and C; A and A; A, A and A; A, A and B; A, A and C, A, B and B; A, C and C; B and B, B, B and B, B, B and C, C and C; C, C and C, and other combinations of A, B, and C. The above example uses three elements, A, B, and C, to illustrate the possible entries for the item. When expressed as "the item includes at least one of the following: A, B, ..., and X," that is, when the expression contains more elements, then the applicable entries for the item can also be obtained according to the aforementioned rules.

[0241] It should also be understood that the term "and / or" in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, or B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the related objects before and after it are in an "or" relationship. For example, A / B means: A or B.

[0242] It should also be understood that in the embodiments of this application, "B corresponding to A" means that B is associated with A, and B can be determined based on A. However, it should also be understood that determining B based on A does not mean that B is determined solely based on A; B can also be determined based on A and / or other information.

[0243] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method for enhancing real-time call services, characterized in that, include: When the first terminal device calls the second terminal device, the first server negotiates with the first software development kit (SDK) to establish a first data channel. The first SDK is deployed in the first terminal device, and the first server is used to provide media information for the user of the first terminal device based on call-based enhanced services. The first server receives first information from the first application server AS. The first information includes a session identifier and a first call status, wherein the session identifier is a session identifier between the first terminal device and the second terminal device, and the first call status is the current call status between the first terminal device and the second terminal device. The first server sends second information to the first SDK through the first data channel. The second information includes media information for one or more enhanced services. The one or more enhanced services are enhanced services provided by the second terminal device for a first service in the first call state. The first service is a service provided by the second terminal device to the first terminal device through the first AS. There is a first association relationship between the first data channel and the session identifier. The first server receives third information from the first SDK through the first data channel. The third information includes the identifier of the first enhanced service, which is the service that the user selects from one or more enhanced services to implement. The first server sends a fourth message to the first AS, the fourth message including the identifier of the first enhanced service; In the first call state, the first server performs the interaction operation of the first enhanced service between the first terminal device and the second terminal device based on the first association relationship and the first AS.

2. The method according to claim 1, characterized in that, The method further includes: The first server receives a first request message from the first AS, the first request message including a session identifier, the first request message being used to request that a data channel be associated with the session identifier; The first server establishes the first association based on the first request message; The first server sends a first request-response message to the first AS, the first request-response message including the first association relationship.

3. The method according to claim 2, characterized in that, The first request message also includes one or more call states, which indicate multiple call states between the first terminal device and the second terminal device. The first call state is one of the one or more call states. Then the first association is the association between the session identifier, the one or more call states and the first data channel.

4. A method for enhancing real-time call services, characterized in that, include: When a first terminal device calls a second terminal device, the first software development kit (SDK) negotiates with a first server to establish a first data channel. The first SDK is deployed in the first terminal device, and the first server is used to provide media information for enhanced call-based services to the user of the first terminal device. The first SDK receives second information from the first server on the first data channel. The second information includes media information for one or more enhanced services. The one or more enhanced services are enhanced services provided by the second terminal device for a first service in a first call state. The first service is a service provided by the second terminal device to the first terminal device through the first application server AS. The first call state is the current call state of the first terminal device and the second terminal device. The first SDK sends third information to the first server through the first data channel. The third information indicates a first enhanced service, which is the service that the user selects from one or more enhanced services to implement. In the first call state, the first SDK performs the interaction operation of the first enhanced service between the first terminal device and the second terminal device through the first data channel with the first server.

5. A method for enhancing real-time call services, characterized in that, include: A first application server (AS) sends first information to a first server. The first information includes a session identifier and a first call status. The session identifier is a session identifier between a first terminal device and a second terminal device. The first call status is the current call status of the first terminal device and the second terminal device. The first server is used to provide media information for multiple enhanced services based on the call to the user of the first terminal device. The first information is used to enable the first server to send media information for one or more enhanced services to a first software development kit (SDK) through a first data channel. The one or more enhanced services are enhanced services provided by a first service in the first call status. The first service is a service provided by the second terminal device to the first terminal device through the first AS. There is a first association between the first data channel and the session identifier. The first SDK is deployed in the first terminal device. The first AS receives fourth information from the first server, the fourth information including the identifier of the first enhanced service, the first enhanced service being the service that the user selects from one or more enhanced services to be implemented; In the first call state, the first AS performs the interaction operation of the first enhanced service between the first terminal device and the second terminal device based on the first association relationship with the first server.

6. The method according to claim 5, characterized in that, The method further includes: The first AS sends a first request message to the first server. The first request message includes a session identifier and is used to request that a data channel be associated with the session identifier. The first AS receives a first request-response message from the first server, the first request-response message including the first association relationship.

7. The method according to claim 6, characterized in that, The first request message also includes one or more call states, which indicate multiple call states between the first terminal device and the second terminal device. The first call state is one of the one or more call states. Then the first association is the association between the session identifier, the one or more call states and the first data channel.

8. The method according to any one of claims 1 to 7, characterized in that, The first enhanced service is a desktop sharing service, or a remote collaboration service, or a touch interaction service, or a real-time tagging service.

9. The method according to any one of claims 1 to 7, characterized in that, The media information of the enhanced service includes the icon, name, corresponding operation script, and playback media content of the enhanced service.

10. The method according to any one of claims 1 to 7, characterized in that, The first AS is a ringback tone AS, or a Virtual Private Network (VPN) AS, or a Long Term Evolution Voice Bearer (VoLTE) AS.

11. A communication device, characterized in that, include: The processing unit is configured to negotiate with a first software development kit (SDK) to establish a first data channel when the first terminal device calls the second terminal device. The first SDK is deployed in the first terminal device. The first server is configured to provide media information for enhanced call services to the user of the first terminal device. A communication unit is configured to receive first information from a first application server AS, the first information including a session identifier and a first call status, wherein the session identifier is a session identifier between the first terminal device and the second terminal device, and the first call status is the current call status of the first terminal device and the second terminal device; The communication unit is further configured to send second information to the first SDK through the first data channel. The second information includes media information of one or more enhanced services. The one or more enhanced services are enhanced services provided by the second terminal device for a first service in the first call state. The first service is a service provided by the second terminal device for the first terminal device through the first AS. There is a first association relationship between the first data channel and the session identifier. The communication unit is further configured to receive third information from the first SDK through the first data channel, the third information including an identifier of a first enhanced service, the first enhanced service being the service that the user selects from the one or more enhanced services to be implemented; The communication unit is further configured to send fourth information to the first AS, the fourth information including the identifier of the first enhanced service; The processing unit is further configured to perform interactive operations of the first enhanced service between the first terminal device and the second terminal device based on the first association relationship and the first AS during the first call state.

12. The apparatus according to claim 11, characterized in that, The communication unit is further configured to receive a first request message from the first AS, the first request message including a session identifier, the first request message being used to request that a data channel be associated with the session identifier; The processing unit is further configured to establish the first association relationship based on the first request message; The communication unit is further configured to send a first request-response message to the first AS, the first request-response message including the first association relationship.

13. The apparatus according to claim 12, characterized in that, The first request message also includes one or more call states, which indicate multiple call states between the first terminal device and the second terminal device. The first call state is one of the one or more call states. Then the first association is the association between the session identifier, the one or more call states and the first data channel.

14. A communication device, characterized in that, include: The processing unit is used to negotiate with the first server to establish a first data channel when the first terminal device calls the second terminal device. The first SDK is deployed in the first terminal device. The first server is used to provide media information for the user of the first terminal device based on call-enhanced services. The communication unit is further configured to receive second information from the first server on the first data channel. The second information includes media information of one or more enhanced services. The one or more enhanced services are enhanced services provided by the second terminal device for a first service in a first call state. The first service is a service provided by the second terminal device to the first terminal device through the first application server AS. The first call state is the current call state of the first terminal device and the second terminal device. The communication unit is further configured to send third information to the first server via the first data channel, the third information indicating a first enhanced service, the first enhanced service being the service that the user selects from the one or more enhanced services to be implemented; The processing unit is further configured to perform interactive operations of the first enhanced service between the first terminal device and the second terminal device through the first data channel with the first server during the first call state.

15. A communication device, characterized in that, include: A communication unit is configured to send first information to a first server. The first information includes a session identifier and a first call status. The session identifier is a session identifier between a first terminal device and a second terminal device. The first call status is the current call status of the first terminal device and the second terminal device. The first server is configured to provide media information for multiple enhanced services based on the call to the user of the first terminal device. The first information is configured to enable the first server to send media information for one or more enhanced services to a first software development kit (SDK) through a first data channel. The one or more enhanced services are enhanced services provided by a first service in the first call status. The first service is a service provided by the second terminal device to the first terminal device through a first application server (AS). A first association exists between the first data channel and the session identifier. The first SDK is deployed in the first terminal device. The communication unit is further configured to receive fourth information from the first server, the fourth information including an identifier of a first enhanced service, the first enhanced service being the service that the user selects from the one or more enhanced services to be implemented; The processing unit is configured to perform interactive operations of the first enhanced service between the first terminal device and the second terminal device based on the first association relationship with the first server during the first call state.

16. The apparatus according to claim 15, characterized in that, The communication unit is further configured to send a first request message to the first server, the first request message including a session identifier, the first request message being used to request that a data channel be associated with the session identifier; The communication unit is further configured to receive a first request-response message from the first server, the first request-response message including the first association relationship.

17. The apparatus according to claim 16, characterized in that, The first request message also includes one or more call states, which indicate multiple call states between the first terminal device and the second terminal device. The first call state is one of the one or more call states. Then the first association is the association between the session identifier, the one or more call states and the first data channel.

18. The apparatus according to any one of claims 11 to 17, characterized in that, The first enhanced service is a desktop sharing service, or a remote collaboration service, or a touch interaction service, or a real-time tagging service.

19. The apparatus according to any one of claims 11 to 17, characterized in that, The media information of the enhanced service includes the icon, name, corresponding operation script, and playback media content of the enhanced service.

20. The apparatus according to any one of claims 11 to 17, characterized in that, The first AS is a ringback tone AS, or a Virtual Private Network (VPN) AS, or a Long Term Evolution Voice Bearer (VoLTE) AS.

21. A communication device, characterized in that, include: Includes at least one processor, The at least one processor is configured to execute a computer program stored in the memory, such that the apparatus performs the method as described in any one of claims 1 to 3; or, The at least one processor is configured to execute a computer program stored in the memory, causing the device to perform the method as described in claim 4, or... The at least one processor is configured to execute a computer program stored in the memory, such that the apparatus performs the method as described in any one of claims 5 to 7.

22. A computer-readable storage medium, characterized in that, Including computer programs, When the computer program is run on a computer, it causes the computer to perform the method as described in any one of claims 1 to 3; or, When the computer program is run on the computer, it causes the computer to perform the method as described in claim 4, or... When the computer program is run on a computer, it causes the computer to perform the method as described in any one of claims 5 to 7.

23. A computer program product, characterized in that, The computer program product includes computer program code: When the computer program code is run on a computer, it causes the computer to implement the method described in any one of claims 1 to 3; or... When the computer program code is run on a computer, it causes the computer to perform the method described in claim 4; or, When the computer program code is run on a computer, it causes the computer to perform the method described in any one of claims 5 to 7.