IMS communication method and device, communication equipment and readable storage medium
By integrating the functions of the operating environment and eMMTel client in the terminal's SDK module, and using the dsBridge bridge library to realize point-to-point download of applets, it solves the problem that the WebRTC 1.0 API does not support IMS data transmission, improving system performance and reducing costs.
Patent Information
- Application Number
- CN202411837921.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-13
- Publication Date
- 2025-03-28
AI Technical Summary
In the prior art, the WebRTC 1.0 API does not support IMS data transmission, resulting in the inability to realize point-to-point mini-program downloads between terminal browsers.
By integrating the functions and interfaces of the operating environment and eMMTel client in the terminal's software development toolkit (SDK) module, the dsBridge bridge library interacts with the applet list module to realize point-to-point download of applets.
It realizes point-to-point applet downloads between terminal browsers, reduces communication overhead between components, improves system response speed and processing capabilities, and reduces the waste of hardware and resources.
Smart Images

Figure CN119728659A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of mobile communication technology, and in particular to an IMS communication method, apparatus, communication device and computer-readable storage medium. Background Art
[0002] At present, the data channel operating environment (referred to as the operating environment) and the enhanced MultiMediaTelephony (eMMTel) enabling architecture based on the IP Multimedia Subsystem (IMS) both involve the mini-program download process. Since the operating environment is connected to the mini-program list, it can be considered that the operating environment initiates an application to the eMMTel enabling architecture to download the mini-programs required by users. In addition, given that the IMS data channel multimedia telephony service (DC Multimedia Telephony Service for IMS, DCMTSI) client in the eMMTel enabling architecture has communication capabilities such as the IMS protocol stack and data channel services, it can be regarded as the system on chip (SOC) in the operating environment. It can be seen that there is a triangular relationship between the operating environment, the eMMTel client and the SOC.
[0003] In the prior art, the mini-program list calls the RTCDataChannel and RTCPeerConnection components in the running environment through the Web Real-Time Communication 1.0 Application Programming Interface (WebRTC 1.0 API) to realize the transmission of multimedia streams and signaling streams between the local and remote ends. However, the WebRTC 1.0 API does not support IMS data transmission. After the introduction of IMS, point-to-point mini-program downloads between terminal browsers cannot be realized. Summary of the invention
[0004] Based on this, it is necessary to provide an IMS communication method, apparatus, communication device, computer-readable storage medium and computer program product that can realize point-to-point downloading of applets between terminal browsers in order to solve the above technical problems.
[0005] In a first aspect, the present application provides an IP Multimedia Subsystem IMS communication method, the method being applied to a software development kit SDK module of a terminal, comprising:
[0006] Sending a first request message for downloading a mini-program to an IMS-based multimedia telephone eMMTel enabling server;
[0007] receiving a first response message returned by the eMMTel enabling server based on the first request message;
[0008] The mini-program to be downloaded contained in the first response message is downloaded.
[0009] In one of the embodiments, the SDK module has the functions and ports of the data channel operating environment and the functions and ports of the eMMTel client, and calls the bridge library dsBridge to interact with the mini-program list module.
[0010] In one embodiment, the method further comprises:
[0011] Sending a mini-program list request message to the eMMTel enabling server;
[0012] Receiving a mini-program list returned by the eMMTel enabling server based on the mini-program list request message;
[0013] The mini-program to be downloaded is determined according to the mini-program list.
[0014] In one of the embodiments, when the eMMTel enabling server determines that the original applet cached by the terminal needs to be updated, the eMMTel enabling server carries the applet to be downloaded in the first response message.
[0015] In one of the embodiments, when the application data channel ADC negotiation is completed, the peer end of the terminal sends a second request message to the eMMTel enabling server, and the eMMTel enabling server returns a second response message including the applet to be downloaded to the peer end based on the second request message.
[0016] In one embodiment, the terminal is further provided with a system-on-chip (SOC), and the method further comprises:
[0017] When receiving a data channel creation request sent by the mini-program list module, creating a data channel according to a predetermined remote operation object, and receiving a data channel object returned by the SOC through a callback interface;
[0018] An observer interface is registered with the SOC according to the data channel object, and a message that the data channel creation is completed is returned to the mini-program list module.
[0019] In one embodiment, the terminal is further provided with a system-on-chip (SOC), and the method further comprises:
[0020] Receive the data channel object returned by the SOC through the callback interface;
[0021] An observer interface is registered with the SOC according to the data channel object, peer data returned by the SOC is received through the observer interface, and the peer data is sent to the mini-program list module.
[0022] In one embodiment, the method further comprises:
[0023] Binding to the data channel service of the SOC;
[0024] Receiving the remote operation object returned by the data channel service;
[0025] According to the remote operation object, the callback interface between the SOC and the remote operation object is set.
[0026] In a second aspect, the present application further provides an IP Multimedia Subsystem IMS communication method, which is applied to an IMS-based multimedia telephone eMMTel enabling server, comprising:
[0027] Receiving a first request message of a small program to be downloaded sent by a software development kit SDK module of a terminal;
[0028] Based on the first request message, a first response message is returned to the SDK module, so that the SDK module downloads the mini-program to be downloaded contained in the first response message.
[0029] In a third aspect, the present application further provides an IP multimedia subsystem IMS communication device, wherein the device is applied to a software development kit SDK module of a terminal, including:
[0030] A request sending module, used for sending a first request message of a mini-program to be downloaded to an IMS-based multimedia telephone eMMTel enabling server;
[0031] a response receiving module, configured to receive a first response message returned by the eMMTel enabling server based on the first request message;
[0032] A program downloading module is used to download the mini-program to be downloaded contained in the first response message.
[0033] In a fourth aspect, the present application further provides an IP Multimedia Subsystem IMS communication device, which is applied to an IMS-based multimedia telephone eMMTel enabling server, including:
[0034] A request receiving module, used to receive a first request message of a small program to be downloaded sent by a software development kit SDK module of a terminal;
[0035] A response sending module is used to return a first response message to the SDK module based on the first request message, so that the SDK module downloads the mini program to be downloaded contained in the first response message.
[0036] In a fifth aspect, the present application further provides a communication device, comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps in any one of the first aspect or the second aspect when executing the computer program.
[0037] In a sixth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, wherein the computer program, when executed by a processor, implements the steps in any one of the first aspect or the second aspect described above.
[0038] In a seventh aspect, the present application further provides a computer program product, comprising a computer program, which, when executed by a processor, implements the steps in any one of the first aspect or the second aspect.
[0039] The above-mentioned IMS communication method, apparatus, communication equipment, computer-readable storage medium and computer program product send a first request message for the mini-program to be downloaded to the eMMTel enabling server, receive a first response message returned by the eMMTel enabling server based on the first request message, and download the mini-program to be downloaded contained in the first response message; the functions and interfaces of the data communication operating environment and the eMMTel client can be integrated into a software development kit (Software Development Kit, SDK), and the logic of mini-program application and downloading is handed over to the SDK to realize point-to-point mini-program download between terminal browsers. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the drawings required for use in the embodiments of the present application or related technical descriptions will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.
[0041] Figure 1 is a schematic diagram of an IMS data channel component in one embodiment;
[0042] Figure 2 is a schematic diagram of an eMMTel enabling architecture in one embodiment;
[0043] Figure 3 is a schematic diagram of the triangular relationship among the operating environment, the eMMTel client and the SOC in one embodiment;
[0044] Figure 4 is a schematic diagram of a binary relationship between SDK and SOC in one embodiment;
[0045] Figure 5 A schematic diagram of a flow chart of an IMS communication method in an embodiment;
[0046] Figure 6 is a schematic diagram of a terminal architecture in one embodiment;
[0047] Figure 7 A schematic diagram of an SDK architecture in one embodiment;
[0048] Figure 8 A schematic diagram of a process of a local end calling a remote end in one embodiment;
[0049] Fig. 9 A schematic diagram of a process of a peer terminal calling a local terminal in one embodiment;
[0050] Fig.10 The figure is a flowchart of mini-program downloading in one embodiment. DETAILED DESCRIPTION
[0051] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0052] It should be noted that the terms "first", "second", etc. in the specification and claims of the present disclosure and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present disclosure described herein can be implemented in an order other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present disclosure. Instead, they are merely examples of devices and methods consistent with some aspects of the present disclosure as detailed in the appended claims.
[0053] Before introducing the specific embodiments of the present application, the professional terms involved in the present application are explained first:
[0054] dsBridge: A bridge library for communication between web pages and native applications, allowing JavaScript code to call native applications and native applications to call JavaScript functions in web pages;
[0055] DCMTSI: DC Multimedia Telephony Service for IMS, multimedia telephony service in IMS data channel;
[0056] eMMTel: enhance MultiMediaTelephony, multimedia telephony service based on IMS;
[0057] JavaScript: A high-level, interpreted programming language, often used in web development to achieve client-side dynamic effects and interactive functions;
[0058] Run Time: The runtime environment refers to the environment required when the program runs on the target machine, including software libraries, environment variables, etc., which provide services for the processes running in the system;
[0059] SDK: Software Development Kit, software development kit;
[0060] Service: A component in the Android system. It is a service program with a long life cycle, no visual interface, and running in the background.
[0061] SOC: System on Chip, a highly integrated microchip;
[0062] WebRTC: Web Real-Time Communication, a real-time communication technology that allows network applications or sites to establish peer-to-peer connections between browsers without the help of an intermediary to achieve the transmission of video streams, audio streams or other arbitrary data;
[0063] BDC: Bootstrap Data Channel, boot data channel;
[0064] ADC: Application Data Channel, application data channel;
[0065] IBinder: basic interface for remote operation objects;
[0066] DCservice: A data channel service in SOC, which is connected to SDK through DCMTSI-M and DCMTSI-S.
[0067] Since both the operating environment and the eMMTel enabling architecture involve the download process of the applet, this application concretizes these two abstract systems into a new operating environment, integrating the functions and interfaces of the two abstract systems.
[0068] Figure 1The various components of the IMS data channel defined by GSMA PRD TS.66 are provided. These components are represented by gray boxes, and the lines between the gray boxes represent the interfaces between the components. Among them, the system within the dotted line is the operating environment, and the list of mini-programs in the data channel application calls the RTCDataChannel, RTCPeerConnection, and RTCPeerSignallingService components in the operating environment through the WebRTC 1.0 API to realize the transmission of multimedia streams and signaling streams between the local end and the other end. The SOC within the dotted line provides communication capabilities, including the IMS protocol stack, data channel services, etc., to truly realize communication with the other end. It can be understood that since the operating environment is connected to the list of mini-programs, it can be seen that the operating environment initiates an application to the eMMTel enabling architecture to download the mini-programs required by the user.
[0069] Figure 2 The eMMTel enabling architecture defined in 3GPP TR 23.700 is provided. The eMMTel client and the eMMTel enabling server interact at the application layer to apply for the mini-programs available to users. The DCMTSI client communicates with the eMMTel enabling server to download the mini-programs stored on the eMMTel enabling server. Obviously, the DCMTSI client has communication capabilities such as the IMS protocol stack and data channel services. In actual situations, it is Figure 1 SOC in.
[0070] It can be seen that there are some problems between the operating environment, eMMTel client and SOC. Figure 3 The triangular relationship shown.
[0071] However, there are many problems with the triangular relationship. First, the three processes have three independent address spaces, including text area, data area and stack area, which consume memory. Moreover, the three processes compete for the CPU, resulting in frequent CPU context switching and consuming CPU resources. In addition, the communication overhead of the three processes also reduces the system's response speed and processing power.
[0072] Secondly, the above triangle relationship is dependent on the WebRTC 1.0 API and requires coupled communication capabilities, that is, each applet must couple the Offer / Answer model to negotiate media parameters with the other end; and the use of the WebRTC1.0 API requires modifying the browser-like container code in the running environment. The browser-like container currently only supports RTCDataChannel and RTCPeerConnection components to access the Internet. To implement the WebRTC 1.0 API solution to access IMS, it is necessary not only to modify the RTCPeerConnection component and add the logic of calling the RTCPeerSignallingService component, but also to add the RTCPeerSignallingService component to complete the IMS data channel Offer / Answer process. In addition, the RTCDataChannel component needs to be modified and the logic of distinguishing the media streams of the Internet and IMS data channels needs to be added.
[0073] To address the above issues, this application proposes to concretize the abstract operating environment and eMMTel client into a new operating environment SDK. The SDK integrates the functions and interfaces of the operating environment and the eMMTel client. The specific solutions include:
[0074] (1) Integrate the components in the runtime environment (browser-like container, RTCDataChannel, RTCPeerConnection, RTCPeerSignallingService) into the SDK;
[0075] (2) The application and download logic of mini-programs in the operating environment and eMMTel client are handed over to the SDK;
[0076] (3) Let the mini program abandon the WebRTC 1.0 API and no longer couple the Offer / Answer model. Instead, call the dsBridge 3.1.4 API to interact with the SDK. The SDK is responsible for the Offer / Answer model. There is no need to update any browser container code to achieve point-to-point mini program downloads between terminal browsers.
[0077] Thus, a binary relationship between SDK and SOC is formed, such as Figure 4 As shown in the figure, the binary relationship improves the system's response speed and processing power by reducing the communication overhead between components. Moreover, after the operating environment and the eMMtel client are physically integrated, the system configuration, monitoring and maintenance process can be simplified, and point-to-point app downloads between terminal browsers can be realized. In addition, the waste of hardware and resources is reduced, and the deployment and operation costs of the system are reduced.
[0078] It should be noted that the beneficial effects brought about by the embodiments of the present application or the technical problems solved are not limited to this one, but may also include other implicit or related problems. For details, please refer to the description of the following embodiments.
[0079] The technical solution of the present application and how the technical solution of the present application solves the above-mentioned technical problems are described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present application will be described below in conjunction with the accompanying drawings.
[0080] In an exemplary embodiment, Figure 5 As shown, an IMS communication method is provided, and the method is applied to Figure 4 The SDK module in is used as an example to illustrate the following steps:
[0081] Step S102: Send a first request message for downloading a mini-program to an IMS-based multimedia telephone eMMTel enabling server.
[0082] The small program to be downloaded may be an application program that the terminal browser needs to download. The first request message may be a message for the terminal on the local side to request downloading of the application program.
[0083] In a specific implementation, after determining the mini-program to be downloaded, the SDK module of the terminal on the local side may send a first request message to the eMMTel enabling server, requesting to download the mini-program to be downloaded from the eMMTel enabling server.
[0084] In actual applications, after establishing the BDC, the SDK can first obtain a list of mini-programs from the eMMTel enabling server. The user selects the mini-program that needs to be downloaded from the mini-program list, and the SDK sends the information of the mini-program that needs to be downloaded (for example, an identifier) to the eMMTel enabling server through a first request message. Alternatively, when the mini-program meets the pre-set automatic download attributes, the SDK automatically obtains the information of the mini-program that needs to be downloaded and sends the information to the eMMTel enabling server through a first request message.
[0085] Step S104: receiving a first response message returned by the eMMTel enabling server based on the first request message.
[0086] The first response message may be a response message to the first request message.
[0087] In a specific implementation, the eMMTel enabling server may generate a first response message according to the received first request message, and send the first response message to the SDK module.
[0088] In actual applications, when the eMMTel enabling server receives the first request message, it can read the information of the mini-program that needs to be downloaded from the first request message, and determine whether the mini-program is cached in the terminal on this side, and whether the mini-program cached in the terminal on this side is the latest version. If the terminal on this side has no cache or the cached version is not the latest version, the mini-program that needs to be downloaded is carried in the first response message and returned to the SDK.
[0089] Step S106: download the mini-program to be downloaded contained in the first response message.
[0090] In a specific implementation, the SDK module may download the mini-program to be downloaded that is carried in the first response message.
[0091] The above-mentioned IMS communication method sends a first request message for the mini-program to be downloaded to the eMMTel enabling server, receives a first response message returned by the eMMTel enabling server based on the first request message, and downloads the mini-program to be downloaded contained in the first response message; the functions and interfaces of the data communication operating environment and the eMMTel client can be integrated into the SDK, and the logic of mini-program application and downloading is handed over to the SDK to realize point-to-point mini-program download between terminal browsers.
[0092] In an exemplary embodiment, the SDK module has the functions and ports of the data channel operating environment and the functions and ports of the eMMTel client, and calls the bridge library dsBridge to interact with the mini-program list module.
[0093] In the specific implementation, since the operating environment and eMMTel client are integrated into one SDK, the SDK module can have the functions and ports of the operating environment as well as the functions and ports of the eMMTel client. In addition, since the SDK can call the dsBridge 3.1.4 API, the mini-program list can abandon the WebRTC 1.0 API and no longer couple the Offer / Answer model. Instead, it calls the dsBridge 3.1.4 API to interact with the SDK module, and the SDK module is responsible for the Offer / Answer model.
[0094] In this embodiment, by enabling the SDK module to have the functions and ports of the data channel operating environment, as well as the functions and ports of the eMMTel client, and calling the bridge library dsBridge to interact with the mini-program list module, WebRTC can be avoided and point-to-point mini-program downloads between terminal browsers can be achieved.
[0095] It is understandable that before sending the first request message for the mini-program to be downloaded to the eMMTel enabling server, a mini-program list may also be requested from the eMMTel enabling server. In an exemplary embodiment, the above-mentioned IMS communication method may further specifically include: sending a mini-program list request message to the eMMTel enabling server; receiving the mini-program list returned by the eMMTel enabling server based on the mini-program list request message; and determining the mini-program to be downloaded according to the mini-program list.
[0096] The mini-program list request message may be a message requesting to obtain a mini-program list. The mini-program list may be information (eg, identifiers) of all mini-programs that the user can use.
[0097] In the specific implementation, after establishing the BDC, the SDK module of the terminal on this side can send a mini-program list request message to the eMMTel enabling server. The eMMTel enabling server generates a mini-program list response message carrying the mini-program list based on the received mini-program list request message, and returns the mini-program list response message to the SDK module. The SDK module reads the mini-program list in the mini-program list response message. The user can select the mini-program to be downloaded from the mini-program list, and the SDK module obtains the information of the mini-program to be downloaded. Alternatively, when the pre-set mini-program automatic download attributes are met, the SDK automatically obtains the information of the mini-program to be downloaded.
[0098] In this embodiment, by sending a mini-program list request message to the eMMTel enabling server, receiving the mini-program list returned by the eMMTel enabling server based on the mini-program list request message, and determining the mini-program to be downloaded according to the mini-program list, the SDK can obtain the mini-program list and determine the mini-program to be downloaded according to the mini-program list, thereby ensuring the reliability of the mini-program download.
[0099] In an exemplary embodiment, when determining that the original applet cached by the terminal needs to be updated, the eMMTel enabling server carries the applet to be downloaded in the first response message.
[0100] The original applet may be an application program cached by the terminal browser. It is understandable that the original applet may have the same name as the applet to be downloaded and the same or different version numbers.
[0101] In the specific implementation, after receiving the first request message sent by the SDK module of the terminal on this side, the eMMTel enabling server can read the information of the applet to be downloaded carried in the first request message, and determine whether the terminal has cached the original applet corresponding to the applet to be downloaded. If the original applet is not cached, the first response message carrying the applet to be downloaded is sent to the SDK module. Otherwise, if the terminal has cached the original applet, it further determines whether the original applet of the terminal needs to be updated. If the original applet does not need to be updated, the first response message sent to the SDK module carries information that the original applet does not need to be updated. Otherwise, if the original applet needs to be updated, the first response message sent to the SDK module carries the applet to be downloaded.
[0102] In actual applications, when the terminal caches a mini-program, the SDK can carry the version information of the cached mini-program in the first request message, and the eMMTel-enabled server sends a first response message to the SDK based on the version information of the cached mini-program. When it is determined that the cached mini-program needs to be updated, the corresponding new mini-program can be returned through the first response message; when it is determined that the cached mini-program is already the latest version, the information that the mini-program does not need to be updated can be returned through the first response message. In particular, if the eMMTel-enabled server determines that the version number of the cached mini-program is less than the minimum version number of the mini-program, or the eMMTel-enabled server determines that the mini-program to be downloaded cannot be used by the current user (such as the user is in the mini-program blacklist or not in the whitelist), the failure information and / or the reason for the failure are returned.
[0103] In this embodiment, by enabling the eMMTel enabling server to carry the mini-program to be downloaded in the first response message when determining that the original mini-program cached by the terminal needs to be updated, the terminal can update the cached mini-program to the latest version, thereby ensuring the real-time download of the mini-program.
[0104] It can be understood that the above-mentioned embodiment provides a method for the terminal on this side to download the mini-program. In an exemplary embodiment, a method for the terminal on the opposite side to download the mini-program is also provided, that is, when the application data channel ADC negotiation is completed, the opposite end of the above-mentioned terminal sends a second request message to the eMMTel enabling server, and the eMMTel enabling server returns a second response message containing the mini-program to be downloaded to the opposite end based on the second request message.
[0105] The opposite end may be an opposite terminal. The second request message may be a message in which the opposite terminal requests to download an application. The second response message may be a response message to the second request message.
[0106] In a specific implementation, after completing the ADC negotiation between the local end (local terminal) and the remote end, the remote end may send a second request message to the eMMTel enabling server. After receiving the second request message, the eMMTel enabling server may carry the applet to be downloaded in a second response message and return it to the remote end.
[0107] In actual applications, the peer SDK can carry the version information of the peer cached applet in the second request message, and the eMMTel-enabled server sends a second response message to the peer SDK based on the version information of the cached applet. When it is determined that the cached applet needs to be updated, the corresponding new applet can be returned through the second response message; when it is determined that the cached applet is already the latest version, the information that the applet does not need to be updated can be returned through the second response message. In particular, if the eMMTel-enabled server determines that the version number of the cached applet is less than the minimum version number of the applet, or the eMMTel-enabled server determines that the applet to be downloaded cannot be used by the peer user (such as the user is in the applet blacklist or not in the whitelist), the failure information and / or the reason for the failure are returned.
[0108] In this embodiment, when the application data channel ADC negotiation is completed, the peer end of the above-mentioned terminal sends a second request message to the eMMTel enabling server, and the eMMTel enabling server returns a second response message containing the applet to be downloaded to the peer end based on the second request message, so that the peer end can download the applet and ensure point-to-point download of the applet between terminal browsers.
[0109] In an exemplary embodiment, a processing flow of the local end in a scenario where the local end calls the other end is given. Specifically, the above-mentioned terminal is also provided with a system-on-chip SOC, and the above-mentioned IMS communication method may further include: when a data channel creation request sent by the mini-program list module is received, a data channel is created according to a predetermined remote operation object, and a data channel object returned by the SOC through a callback interface; an observer interface is registered to the SOC according to the data channel object, and a message indicating that the data channel creation is completed is returned to the mini-program list module.
[0110] Among them, the mini program list module can be Figure 1 A functional module in a data channel application. The data channel creation request may be a message requesting the creation of a data channel. The remote operation object may be an IBinder object. The data channel object may be the created data channel. The callback interface may be an interface for performing a callback. The observer interface may be an interface for performing an observation.
[0111] In the specific implementation, when the local end initiates a call, the mini-program list module can send a data channel creation request to the SDK module. The SDK module creates a data channel through a predetermined IBinder object. When the data channel is established with the other end, the SOC returns the data channel object to the callback interface. After that, the SDK module can register the observer interface with the data channel object in the callback interface, and can also return a message indicating that the data channel creation is completed to the mini-program list module. At this time, the local end can transmit data to the other end.
[0112] In this embodiment, when a data channel creation request is received from the mini-program list module, a data channel is created according to a predetermined remote operation object, and a data channel object returned by the SOC through a callback interface is received, an observer interface is registered with the SOC according to the data channel object, and a message indicating that the data channel creation is completed is returned to the mini-program list module. In this way, a data channel can be established between the local end and the other end, and IMS communication can be reliably implemented.
[0113] In an exemplary embodiment, a processing flow of the local end in a scenario where the opposite end calls the local end is given. Specifically, the terminal is also provided with a system-on-chip SOC, and the IMS communication method may further include: receiving a data channel object returned by the SOC through a callback interface; registering an observer interface with the SOC according to the data channel object, receiving the opposite end data returned by the SOC through the observer interface, and sending the opposite end data to the mini-program list module.
[0114] The peer data may be video, audio, and data that the peer needs to transmit to the local end.
[0115] In the specific implementation, this end can wait for the other end to initiate a call. After the other end initiates the call, if the local SDK module receives the data channel object returned by the SOC through the callback interface, it means that this end has established a data channel with the other end. The SDK module can use the data channel object to register the observer interface to the SOC, receive the other end data returned by the SOC through the observer interface, and forward it to the mini-program list module. At this time, this end can transmit data to the other end.
[0116] In this embodiment, by receiving the data channel object returned by the SOC through the callback interface, registering the observer interface with the SOC according to the data channel object, receiving the peer data returned by the SOC through the observer interface, and sending the peer data to the mini-program list module, a data channel can be established between the peer and the local end, and IMS communication can be reliably implemented.
[0117] In an exemplary embodiment, the above IMS communication method may further specifically include: binding with a data channel service of the SOC; receiving a remote operation object returned by the data channel service; and setting a callback interface with the SOC according to the remote operation object.
[0118] The data channel service may be a service related to the data channel in the SOC.
[0119] In the specific implementation, no matter the local end calls the other end or the other end calls the local end, the SDK modules of the local end and the other end can be pre-bound to the DCservice in the SOC, and the DCservice returns the IBinder object to the SDK module, and the SDK module uses the IBinder object to notify the DCservice to set the callback interface.
[0120] In this embodiment, by binding with the data channel service of the SOC, receiving the remote operation object returned by the data channel service, setting the callback interface between the SOC according to the remote operation object, the callback interface between the SDK and the SOC can be pre-set to ensure the reliability of IMS communication.
[0121] In order to facilitate those skilled in the art to have a deeper understanding of the embodiments of the present application, a specific example will be described below.
[0122] The present application provides a method for concretizing an operating environment and an eMMTEL client in an IMS terminal based on an SDK. Due to the binary structure of SDK and SOC, it can be referred to as an S_only method. Figure 6 A schematic diagram of the terminal architecture based on this method is provided, see Figure 6 , SDK can be integrated into the terminal native call application in the form of a software package, connecting to the applet in the north and the SOC in the south, integrating the components and various logics of the operating environment and eMMTEL client. It can be understood that SDK is a software package that provides the functions of transmitting signaling streams and media streams between the local applet (hereinafter referred to as the local end) and the peer applet (hereinafter referred to as the peer end), as well as downloading the applet function.
[0123] The SDK architecture is as follows Figure 7 As shown, reference Figure 7 , SDK can include interface layer (browser-like container), function management layer and capability adaptation layer, among which,
[0124] The browser-like container layer consists of two parts: the mini-program interface and the call application interface. The mini-program interface provides developers with a JavaScript API for mini-program development, and the call application interface encapsulates the browser-like components and provides a Java API for call applications.
[0125] The function management layer consists of two parts: business function management and mini-program management. The business management module is responsible for providing the processing logic of the interactive signaling flow and media flow between the local and remote ends. The mini-program management module is responsible for mini-program download and cache management, mini-program data storage, mini-program verification, and mini-program life cycle management.
[0126] The capability adaptation layer provides basic terminal capabilities, such as call-related capabilities, storage capabilities, network communication capabilities, thread management capabilities, etc. At the same time, it provides network capabilities such as IMS data channels.
[0127] The transmission of signaling streams and multimedia streams, and the download of mini-programs are the main tasks of the SDK. In the SDK, the business management module is responsible for the transmission of signaling streams and multimedia streams, and the mini-program management module is responsible for the download of mini-programs.
[0128] It should be noted that other general function modules are omitted here, including modules that provide common capabilities such as thread pool management, log management, file path management, and permission management. These modules can be used as auxiliary modules for the SDK to implement the main tasks.
[0129] In one embodiment, a signaling flow and multimedia transmission process are provided. It can be understood that the names of the calling interface, event callback interface, and callback interface are hidden in the process. Dcservice is a service in SOC, which is connected to SDK through DCMTSI-M and DCMTSI-S. The specific implementation is not described in this application.
[0130] refer to Figure 8 When the local end calls the remote end, the local end processing flow may include the following steps:
[0131] Step S201, the mini program notifies the business management module (hereinafter referred to as the management module) in the SDK to set an event callback interface;
[0132] Step S202, the management module calls the bindService() method to bind the service DCservice;
[0133] Step S203, DCservice returns an IBinder object to the management module;
[0134] Step S204, the management module uses the IBinder object to notify DCservice to set callback interface 1;
[0135] Waiting for the local end to initiate a call,
[0136] Step S205, the mini program requests the SDK to create a data channel;
[0137] Step S206, the management module creates a data channel through the IBinder object;
[0138] Step S207, Dcservice returns the data channel object to callback interface 1 of the management module, which means that Dcservice has established a data channel with the peer end;
[0139] Step S208, the management module registers the observer interface with the data channel object in the callback interface 1;
[0140] Step S209: the management module returns the data channel creation status to the event callback interface, which means that the local end can transmit data to the peer end;
[0141] Step S210: The local end and the opposite end transmit audio streams, video streams and any other data.
[0142] refer to Fig. 9 When the other end calls the local end, the local end processing flow may include the following steps:
[0143] Step S301, the mini program notifies the management module to set an event callback interface;
[0144] Step S302, the management module calls the bindService() method to bind the service DCservice;
[0145] Step S303, DCservice returns an IBinder object to the management module;
[0146] Step S304, the management module uses the IBinder object to notify DCservice to set callback interface 1;
[0147] Waiting for the other end to initiate a call,
[0148] Step S305, Dcservice returns the data channel object to callback interface 1 of the management module, which means that Dcservice has established a data channel with the peer end;
[0149] Step S306, the management module registers the observer interface with the data channel object in the callback interface 1;
[0150] Step S307, DCservice returns peer data to the observer interface;
[0151] Step S308: The management module returns the peer data to the event callback interface, which means that the local end can transmit data to the peer end.
[0152] Step S309: the local end and the opposite end transmit audio streams, video streams and any other data.
[0153] Fig.10 A flowchart of the mini program download process is provided. It should be noted that the information element table in the relevant request and response messages is hidden in the process. The mini program download process may specifically include:
[0154] Step S401, the SOC has established a guide data channel;
[0155] Step S402, the mini-program management module (hereinafter referred to as the management module) in the SDK sends a mini-program configuration file list request message to the eMMTel enabling server to obtain a list of mini-program configuration files available to the user;
[0156] Step S403, the eMMTel enabling server sends a mini-program configuration file list response message to the management module;
[0157] Local Mini Program download method: Users select a Mini Program from the Mini Program list or trigger the download based on the Mini Program's automatic download attribute.
[0158] Step S404a, the management module sends a mini-program request message to the eMMTel enabling server. When the terminal has a cached mini-program, the management module needs to carry the cached mini-program version number information in the message;
[0159] Step S405a, the eMMTel enabling server sends a mini-program response message to the management module. When it is determined that the mini-program needs to be updated, the new mini-program is returned in the mini-program response message; when it is determined that the cached version of the mini-program is already the latest version, the mini-program response message returns information that does not need to be updated; in particular, when the eMMTel enabling server determines that the cached mini-program version number is less than the minimum version number requirement of the requested mini-program, or when the eMMTel enabling server determines that the mini-program cannot be used by the current user (such as the user is in the mini-program blacklist or not in the whitelist), the failure reason is returned;
[0160] The peer applet download method: The management module receives a request to establish an end-to-end ADC or an end-to-network ADC.
[0161] Step S404b, the local management module / SOC and the peer end complete ADC negotiation;
[0162] Step S405b, the management module sends a mini-program request message to the eMMTel enabling server. When the terminal has a cached mini-program, the management module needs to carry the cached mini-program version number information in the message;
[0163] Step S406b, the eMMTel enabling server sends a mini-program response message to the management module. When the eMMTel enabling server determines that the application needs to be updated, the new mini-program is returned in the mini-program response message; when the eMMTel enabling server determines that the cached version of the mini-program is already the latest version, the mini-program response message returns information that does not need to be updated; in particular, when the eMMTel enabling server determines that the cached mini-program version number is less than the minimum version number requirement of the requested mini-program, or when the eMMTel enabling server determines that the mini-program cannot be used by the current user (such as the user is in the mini-program blacklist or not in the whitelist), the failure reason is returned.
[0164] It should be noted that, when the applet is not downloaded successfully in step S406b, the management module instructs the SOC to remove the ADC in step S404b.
[0165] In one embodiment, in the applet, dsBridge.call is used to call the sendData and createDataChannel interfaces:
[0166] dsBridge.call(
[0167] 'async',
[0168] {
[0169] event: 'xxxxxx',
[0170] function: 'createDataChannel / sendData',
[0171] params: {xxxxxx}
[0172] },
[0173] function (v) {}
[0174] xxxxxx )
[0176] Among them, xxxxxx includes the event name, parameter format and content, and the processing logic of the callback function.
[0177] In one embodiment, the applet uses dsBridge.register to register the event callback interface:
[0178] dsBridge.register('xxxxxx', function (params) {xxxxxx})
[0179] Among them, xxxxxx includes the event name, parameter format and content, and the processing logic of the callback function.
[0180] In one embodiment, the mini-program management module in the SDK calls the DCMTSI-M and DCMTSI-S interfaces of DCservice;
[0181] interface DCMTSI-M {xxxxxx}
[0182] interface DCMTSI-S {xxxxxx}
[0183] Among them, xxxxxx includes the method name and processing logic, parameter format and content, and the processing logic of the callback method. The callback method includes observers, data channel creation, and transmission callback methods.
[0184] In one embodiment, the implementation logic of DCservice is included.
[0185] In one embodiment, the information elements in various HTTP requests and response messages in the applet download process include:
[0186] The table of information elements in the mini-program configuration file list request;
[0187] Table of information elements in the mini-program configuration file list response;
[0188] Information element table of applet request message;
[0189] Table of information elements for applet response messages.
[0190] The above S_only method no longer allows the mini program to intervene in the offer / answer communication capabilities, but focuses on the implementation of its own application logic. It saves the process of the data channel, improves the efficiency of data channel transmission, facilitates the control and use of the data channel, and improves the availability of the data channel. In addition, the above technical solution has no impact on 5GC / IMS, and the addition of SDK does not involve modifying the native system, which can effectively improve production efficiency. In addition, the good compatibility of the HTTP protocol also meets the requirements of sustainable development.
[0191] It should be understood that, although the various steps in the flowcharts involved in the above-mentioned embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above-mentioned embodiments can include multiple steps or multiple stages, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.
[0192] Based on the same inventive concept, the embodiment of the present application also provides an IMS communication device for implementing the above-mentioned IMS communication method. The implementation solution provided by the device to solve the problem is similar to the implementation solution recorded in the above-mentioned method, so the specific limitations in one or more IMS communication device embodiments provided below can refer to the above-mentioned limitations on the IMS communication method, which will not be repeated here.
[0193] In an exemplary embodiment, an IMS communication device is provided, which is applied to a software development kit SDK module of a terminal, including: a request sending module, a response receiving module and a program downloading module, wherein:
[0194] A request sending module, used for sending a first request message of a mini-program to be downloaded to an IMS-based multimedia telephone eMMTel enabling server;
[0195] a response receiving module, configured to receive a first response message returned by the eMMTel enabling server based on the first request message;
[0196] A program downloading module is used to download the mini-program to be downloaded contained in the first response message.
[0197] In an exemplary embodiment, the SDK module has the functions and ports of the data channel operating environment and the functions and ports of the eMMTel client, and calls the bridge library dsBridge to interact with the mini-program list module.
[0198] In an exemplary embodiment, the above-mentioned IMS communication device also includes a list sending module, which is used to send a mini-program list request message to the eMMTel enabling server; receive the mini-program list returned by the eMMTel enabling server based on the mini-program list request message; and determine the mini-program to be downloaded according to the mini-program list.
[0199] In an exemplary embodiment, when the eMMTel enabling server determines that the original applet cached by the terminal needs to be updated, the eMMTel enabling server carries the applet to be downloaded in the first response message.
[0200] In an exemplary embodiment, when the application data channel ADC negotiation is completed, the peer end of the terminal sends a second request message to the eMMTel enabling server, and the eMMTel enabling server returns a second response message containing the applet to be downloaded to the peer end based on the second request message.
[0201] In an exemplary embodiment, the terminal is also provided with a system-on-chip SOC, and the above-mentioned IMS communication device also includes a first call module, which is used to create a data channel according to a predetermined remote operation object when receiving a data channel creation request sent by the mini-program list module, and receive the data channel object returned by the SOC through the callback interface; register an observer interface to the SOC according to the data channel object, and return a message of the completion of the data channel creation to the mini-program list module.
[0202] In an exemplary embodiment, the terminal is also provided with a system-on-chip SOC, and the above-mentioned IMS communication device also includes a second call module, which is used to receive the data channel object returned by the SOC through the callback interface; register an observer interface with the SOC according to the data channel object, receive the peer data returned by the SOC through the observer interface, and send the peer data to the mini-program list module.
[0203] In an exemplary embodiment, the above-mentioned IMS communication device also includes a callback interface module, which is used to bind with the data channel service of the SOC; receive the remote operation object returned by the data channel service; and set the callback interface between the SOC and the SOC according to the remote operation object.
[0204] In an exemplary embodiment, an IMS communication device is provided, which is applied to an IMS-based multimedia telephone eMMTel enabling server, including: a request receiving module and a response sending module, wherein:
[0205] A request receiving module, used to receive a first request message of a small program to be downloaded sent by a software development kit SDK module of a terminal;
[0206] A response sending module is used to return a first response message to the SDK module based on the first request message, so that the SDK module downloads the mini program to be downloaded contained in the first response message.
[0207] Each module in the above-mentioned IMS communication device can be implemented in whole or in part by software, hardware and a combination thereof. Each of the above-mentioned modules can be embedded in or independent of the processor in the communication device in the form of hardware, or can be stored in the memory in the communication device in the form of software, so that the processor can call and execute the operations corresponding to each of the above modules.
[0208] In an exemplary embodiment, a communication device is provided, which may be a terminal. The communication device includes a processor, a memory, an input / output interface, a communication interface, a display unit, and an input device. The processor, the memory, and the input / output interface are connected via a system bus, and the communication interface, the display unit, and the input device are connected to the system bus via the input / output interface. The processor of the communication device is used to provide computing and control capabilities. The memory of the communication device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the communication device is used to exchange information between the processor and an external device. The communication interface of the communication device is used to communicate with an external terminal in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, near field communication (NFC) or other technologies. When the computer program is executed by the processor, an IMS communication method is implemented. The display unit of the communication device is used to form a visually visible picture, which may be a display screen, a projection device, or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen, and the input device of the communication device can be a touch layer covering the display screen, or a button, trackball or touchpad set on the communication device housing, or an external keyboard, touchpad or mouse.
[0209] Those skilled in the art will understand that the above structure is merely a block diagram of a partial structure related to the scheme of the present application, and does not constitute a limitation on the communication device to which the scheme of the present application is applied. The specific communication device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.
[0210] In one embodiment, a communication device is further provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the steps in the above method embodiments when executing the computer program.
[0211] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.
[0212] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.
[0213] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.
[0214] A person of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment method can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to the memory, database or other medium used in the embodiments provided in the present application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, an artificial intelligence (AI) processor, etc., but are not limited to this.
[0215] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this application.
[0216] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.
Claims
1. An IP Multimedia Subsystem IMS communication method, characterized in that: The method is applied to a software development kit SDK module of a terminal, including: Sending a first request message for downloading a mini-program to an IMS-based multimedia telephone eMMTel enabling server; receiving a first response message returned by the eMMTel enabling server based on the first request message; The mini-program to be downloaded contained in the first response message is downloaded.
2. The method according to claim 1, characterized in that The SDK module has the functions and ports of the data channel operating environment and the functions and ports of the eMMTel client, and calls the bridge library dsBridge to interact with the mini-program list module.
3. The method according to claim 1, characterized in that The method further comprises: Sending a mini-program list request message to the eMMTel enabling server; Receiving a mini-program list returned by the eMMTel enabling server based on the mini-program list request message; The mini-program to be downloaded is determined according to the mini-program list.
4. The method according to claim 1, characterized in that: When determining that the original applet cached by the terminal needs to be updated, the eMMTel enabling server carries the applet to be downloaded in the first response message.
5. The method according to claim 1, characterized in that When the application data channel ADC negotiation is completed, the peer end of the terminal sends a second request message to the eMMTel enabling server, and the eMMTel enabling server returns a second response message including the applet to be downloaded to the peer end based on the second request message.
6. The method according to claim 1, characterized in that The terminal is also provided with a system-on-chip (SOC), and the method further comprises: When receiving a data channel creation request sent by the mini-program list module, creating a data channel according to a predetermined remote operation object, and receiving a data channel object returned by the SOC through a callback interface; An observer interface is registered with the SOC according to the data channel object, and a message that the data channel creation is completed is returned to the mini-program list module.
7. The method according to claim 1, characterized in that The terminal is also provided with a system-on-chip (SOC), and the method further comprises: Receive the data channel object returned by the SOC through the callback interface; An observer interface is registered with the SOC according to the data channel object, peer data returned by the SOC is received through the observer interface, and the peer data is sent to the mini-program list module.
8. The method according to claim 6 or 7, characterized in that: The method further comprises: Binding to the data channel service of the SOC; Receiving the remote operation object returned by the data channel service; According to the remote operation object, the callback interface between the SOC and the remote operation object is set.
9. An IP Multimedia Subsystem IMS communication method, characterized in that: The method is applied to an IMS-based multimedia telephone eMMTel enabling server, comprising: Receiving a first request message of a small program to be downloaded sent by a software development kit SDK module of a terminal; Based on the first request message, a first response message is returned to the SDK module, so that the SDK module downloads the mini-program to be downloaded contained in the first response message.
10. An IP Multimedia Subsystem IMS communication device, characterized in that: The device method is applied to a software development kit SDK module of a terminal, including: A request sending module, used for sending a first request message of a mini-program to be downloaded to an IMS-based multimedia telephone eMMTel enabling server; a response receiving module, configured to receive a first response message returned by the eMMTel enabling server based on the first request message; A program downloading module is used to download the mini-program to be downloaded contained in the first response message.
11. An IP Multimedia Subsystem IMS communication device, characterized in that: The device is applied to an IMS-based multimedia telephone eMMTel enabling server, including: A request receiving module, used to receive a first request message of a small program to be downloaded sent by a software development kit SDK module of a terminal; A response sending module is used to return a first response message to the SDK module based on the first request message, so that the SDK module downloads the mini program to be downloaded contained in the first response message.
12. A communication device, comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 8 or 9 are implemented.
13. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 8 or 9 are implemented.
14. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 8 or 9 are implemented.
Citation Information
Patent Citations
Service management method, device and system thereof, electronic equipment and storage medium
CN116406028A
Small program list issuing method and device, communication equipment and storage medium
CN118827828A