Remote SIM supply
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-10-04
- Publication Date
- 2026-08-14
AI Technical Summary
具体地,针对支持M2M通信的计算设备(诸如IoT设备等)远程地更新SIM简档在传送SIM简档更新时存在用于向支持M2M通信的计算设备(诸如IoT设备等)进行远程SIM供应的当前方法尚未解决的安全问题
Smart Images

Figure CN116349262B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] This application claims the benefit of priority to U.S. Patent Application No. 17 / 090,477, filed November 5, 2020, the entire contents of which are incorporated herein by reference. Technical Field Background Technology
[0003] Long Term Evolution (LTE), 5G New Radio (NR), and other recently developed communication technologies allow wireless devices to transmit information at data rates several orders of magnitude higher (e.g., in gigabits per second) than were available just a few years ago.
[0004] Today's communication networks are also more secure, resistant to multipath fading, allow for lower network service latency, and provide better communication efficiency (e.g., measured in bits per second per unit of bandwidth). These and other recent improvements have led to the emergence of the Internet of Things (IoT), large-scale machine-to-machine (M2M) communication systems, autonomous vehicles, and other technologies that rely on continuous and secure communication.
[0005] The increasing popularity of computing devices supporting M2M communication (such as IoT devices) has led to the emergence of communication protocols for supporting M2M communication, such as the Lightweight Machine-to-Machine (LwM2M) protocol defined by the Open Mobile Alliance (OMA). Furthermore, the growth in the number of computing devices supporting M2M communication (such as IoT devices) has resulted in an increase in the number of computing devices with Subscriber Identity Module (SIM) profiles associated with subscriptions from operators providing wireless communication services to the computing devices.
[0006] Because M2M communication-enabled computing devices (such as IoT devices) are typically devices that operate independently of human interaction, operate in remote or hard-to-access locations, and / or are manufactured with fully enclosed or sealed form factors (such as electrical appliances, industrial equipment, safety equipment, sensors, etc.), changing subscriptions for M2M communication-enabled computing devices (such as IoT devices) from one operator to another presents challenges. Specifically, remotely updating SIM profiles for M2M communication-enabled computing devices (such as IoT devices) presents unresolved security issues with current methods for remote SIM provisioning to M2M communication-enabled computing devices (such as IoT devices) when transmitting SIM profile updates. Summary of the Invention
[0007] Various aspects may include methods for supporting the provision of remote subscriber identity module (SIM) profiles, which can be executed by the processor of a lightweight machine-to-machine (LwM2M) server and / or the processor of an LwM2M client computing device (such as an Internet of Things (IoT) device).
[0008] The aspects may include receiving instructions from a mobile network operator's server for an update to the SIM profile for an LwM2M client computing device, generating a remote SIM provisioning object for the LwM2M client computing device indicating the availability of the SIM profile update for the LwM2M client computing device, and sending the remote SIM provisioning object to the LwM2M client computing device.
[0009] Various aspects may also include receiving a SIM profile package from a mobile network operator's server and sending the SIM profile package to the LwM2M client computing device in one or more additional remote SIM provisioning objects. In some aspects, the instruction from the mobile network operator's server for an update of the SIM profile for the LwM2M client computing device may include one or more addresses from the mobile network operator's server where the SIM profile package is available for download by the LwM2M client computing device, and the remote SIM provisioning object may include one of the one or more addresses.
[0010] The aspects may also include determining the SIM profile update protocol supported by the LwM2M client computing device, and selecting one of one or more addresses based at least in part on the SIM profile update protocol supported by the LwM2M client computing device.
[0011] Various aspects may also include: determining whether the LwM2M client computing device supports the radio frequency (RF) band associated with the SIM profile update for the LwM2M client computing device before generating the remote SIM provisioning object, and sending an indication of a SIM profile update error to the mobile network operator's server in response to determining that the LwM2M client computing device does not support the RF band associated with the SIM profile update for the LwM2M client computing device. In some aspects, generating the remote SIM provisioning object may include generating the remote SIM provisioning object in response to determining that the LwM2M client computing device does indeed support the RF band associated with the SIM profile update for the LwM2M client computing device.
[0012] Various aspects may further include: determining, before generating a remote SIM provisioning object, whether the free memory space of the SIM of the LwM2M client computing device is equal to or greater than the memory requirement for a SIM profile update for the LwM2M client computing device, and sending an indication of a SIM profile update error to the mobile network operator's server in response to determining that the free memory space of the SIM is less than the memory requirement for a SIM profile update for the LwM2M client computing device. In some aspects, generating a remote SIM provisioning object may include generating the remote SIM provisioning object in response to determining that the free memory space of the SIM is equal to or greater than the memory requirement for a SIM profile update for the LwM2M client computing device.
[0013] In some aspects, sending a remote SIM provisioning object to an LwM2M client computing device may include using a secure connection to send the remote SIM provisioning object to the LwM2M client computing device.
[0014] The aspects may also include: determining whether a second remote SIM provisioning object has been received from the LwM2M client computing device indicating that the LwM2M client computing device has successfully downloaded the SIM profile package; generating a third remote SIM provisioning object for the LwM2M client computing device including a profile update trigger indication in response to determining that the second remote SIM provisioning object has been received from the LwM2M client computing device; and sending the third remote SIM provisioning object to the LwM2M client computing device.
[0015] Various aspects may include receiving a remote SIM provisioning object from the LwM2M server indicating the availability of a SIM profile update for an LwM2M client computing device, and downloading the SIM profile update in response to receiving the remote SIM provisioning object.
[0016] In some aspects, downloading a SIM profile update may include: receiving a SIM profile packet in one or more additional remote SIM provisioning objects from an LwM2M server; determining whether the SIM profile packet passes an integrity check; in response to determining that the SIM profile packet fails an integrity check, sending an indication to the LwM2M server that the integrity check failed to the remote SIM provisioning object; and in response to determining that the SIM profile packet passes an integrity check, sending an indication to the LwM2M server that the SIM profile packet is in a downloaded state to the remote SIM provisioning object.
[0017] In some aspects, the remote SIM provisioning object includes an address where a SIM profile package is available for download, and downloading a SIM profile update may include sending a request for the SIM profile package to that address, receiving the SIM profile package in response to sending the request for the SIM profile package to that address, determining whether the SIM profile package passes an integrity check, sending an indication of integrity check failure to the LwM2M server in response to determining that the SIM profile package fails an integrity check, and sending an indication to the LwM2M server that the SIM profile package is in a downloaded state in response to determining that the SIM profile package passes an integrity check.
[0018] In some aspects, the address can be a Uniform Resource Identifier (URI) associated with a server other than the LwM2M server. In some aspects, receiving a remote SIM provisioning object can include using a secure connection to receive the remote SIM provisioning object from the LwM2M server.
[0019] The aspects may also include receiving a SIM profile packet, receiving a second remote SIM provisioning object from an LwM2M server including a profile update triggering indication, and initiating a SIM profile update for an LwM2M client computing device using the SIM profile packet in response to receiving the second remote SIM provisioning object.
[0020] The aspects may also include: in response to a successful update of the SIM profile, sending a third remote SIM provisioning object to the LwM2M server, the third remote SIM provisioning object indicating the new current service provider for the LwM2M client computing device.
[0021] In some respects, LwM2M client computing devices can be IoT devices.
[0022] A further aspect includes a computing device (such as an IoT device) having a processor configured with processor-executable instructions for performing operations of any of the LwM2M client methods outlined above. A further aspect includes a computing device (such as an IoT device) having components for performing functions of any of the LwM2M client methods outlined above. A further aspect includes a non-transitory processor-readable medium having processor-executable instructions stored thereon, the processor-executable instructions being configured to cause the processor of the computing device (such as an IoT device) to perform operations of any of the LwM2M client methods outlined above. A further aspect includes a server having a processor configured with processor-executable instructions for performing operations of any of the LwM2M server methods outlined above. Various aspects include a server having components for performing functions of any of the LwM2M server methods outlined above. Various aspects include a non-transitory processor-readable medium having processor-executable instructions stored thereon, the processor-executable instructions being configured to cause the processor of the server to perform operations of any of the LwM2M server methods outlined above. Attached Figure Description
[0023] The accompanying drawings, which are incorporated herein and form part of this specification, illustrate exemplary embodiments of the claims and, together with the general description given above and the detailed description given below, serve to interpret the features of the claims.
[0024] Figure 1 This is a conceptual illustration of a system block diagram for an example communication system.
[0025] Figure 2 This is a component block diagram illustrating components of an example computing system that can be configured to implement remote subscriber identity module (SIM) profile provisioning according to various embodiments.
[0026] Figure 3A This is a block diagram illustrating an example lightweight machine-to-machine (LwM2M) architecture suitable for implementing various embodiments.
[0027] Figure 3B These are examples of remote SIM provisioning objects suitable for implementing various embodiments.
[0028] Figure 4 This is a process flow diagram illustrating a method for supporting remote SIM profile provisioning, which can be executed by an LwM2M server according to various embodiments.
[0029] Figure 5 This is a process flow diagram illustrating a method for supporting remote SIM profile provisioning, which can be executed by an LwM2M client computing device according to various embodiments.
[0030] Figure 6A This is a process flow diagram illustrating a method for supporting remote SIM profile provisioning that can be executed by an LwM2M server according to some embodiments.
[0031] Figure 6B This is a process flow diagram illustrating a method for downloading SIM profile updates, which can be executed by an LwM2M client computing device according to some embodiments.
[0032] Figure 7A This is a process flow diagram illustrating a method for supporting remote SIM profile provisioning that can be executed by an LwM2M server according to some embodiments.
[0033] Figure 7B This is a process flow diagram illustrating a method for downloading SIM profile updates, which can be executed by an LwM2M client computing device according to some embodiments.
[0034] Figure 8 This is a process flow diagram illustrating a method for supporting remote SIM profile provisioning that can be executed by an LwM2M server according to some embodiments.
[0035] Figure 9 This is a process flow diagram illustrating a method for supporting remote SIM profile provisioning, which can be executed by an LwM2M client computing device according to some embodiments.
[0036] Figure 10A This is a process flow diagram illustrating a method for supporting remote SIM profile provisioning that can be executed by an LwM2M server according to some embodiments.
[0037] Figure 10B This is a process flow diagram illustrating a method for supporting remote SIM profile provisioning that can be executed by an LwM2M server according to some embodiments.
[0038] Figure 11 This is a state diagram illustrating example operations for supporting remote SIM profile provisioning that can be performed by an LwM2M client computing device according to some embodiments.
[0039] Figure 12 This is a component block diagram applicable to various embodiments of IoT devices.
[0040] Figure 13 This is a component diagram of an example server applicable to various implementations.
[0041] Figure 14 This is a component block diagram applicable to the implementation of wireless devices in various embodiments. Detailed Implementation
[0042] Various embodiments will be described in detail with reference to the accompanying drawings. Where possible, the same reference numerals will be used throughout the drawings to refer to the same or similar parts. References to particular examples and implementations are for illustrative purposes and are not intended to limit the scope of the claims.
[0043] Various embodiments provide methods for supporting remote subscriber identity module (SIM) profile provisioning, executable by the processor of a lightweight machine-to-machine (LwM2M) server and / or the processor of an LwM2M client computing device (such as an Internet of Things (IoT) device, smartphone, etc.). Various embodiments may include exchanging remote SIM provisioning objects between an LwM2M server and an LwM2M client computing device (such as an IoT device) to support SIM profile provisioning to the LwM2M client computing device. Remote provisioning of SIM profiles allows operators of LwM2M client computing devices (such as IoT devices, smartphones, etc.) to change them without user interaction and / or by user physical access to the LwM2M client computing device. Changing LwM2M client computing devices (such as IoT devices, smartphones, etc.) without user interaction and / or by user physical access to the LwM2M client computing device can save costs and / or provide flexibility in the operation of the LwM2M client computing device. Various embodiments enable mobile network operators (MNOs) to remotely provision SIM profiles to LwM2M client computing devices without sending SIM profiles to a subscription manager data preparation (SM-DP+) server as required by the Remote SIM Provisioning (RSP) technical specification defined by the Global System for Mobile Communications Association (GSMA). Various embodiments also enable original equipment manufacturers (OEMs) to switch operators for LwM2M client computing devices (such as IoT devices, smartphones, etc.).
[0044] The terms “wireless device,” “user equipment” (UE), and “UE computing device” are used herein to refer to any or all of the following: cellular telephone, smartphone, portable computing device, personal or mobile multimedia player, laptop computer, tablet computer, smart computer, ultrabook, handheld computer, wireless email receiver, Internet-enabled multimedia cellular telephone, wireless router device, wireless appliance, medical device and equipment, entertainment device (e.g., wireless game controller, music and video player, satellite radio, etc.), wireless communication elements in autonomous and semi-autonomous vehicles, wireless devices attached to or incorporated into various mobile platforms, and similar electronic devices including memory, one or more SIM cards, wireless communication components, and programmable processors.
[0045] The term "IoT device" is used herein to refer to any of a variety of devices, including processors and transceivers for communicating with other devices or networks. For ease of description, examples of IoT devices are described as communicating via a radio frequency (RF) wireless communication link; however, IoT devices can communicate with another device (or user) via wired or wireless communication links, for example, as a participant in a communication network such as IoT. Such communication can include communication with another wireless device, base station (including cellular communication network base stations and IoT base stations), access point (including IoT access points), or other wireless devices.
[0046] Various embodiments can be implemented in accordance with any of the Institute of Electrical and Electronics Engineers (IEEE) 16.11 standards or any of the IEEE 802.11 standards. Standards, Code Division Multiple Access (CDMA), CDMA-2000, Frequency Division Multiple Access (FDMA), Time Division Multiple Access (TDMA), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Global System for Mobile Communications (GSM), GSM / General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE) (also known as Enhanced GPRS (EGPRS)), Terrestrial Trunking Radio (TETRA), Wideband CDMA (WCDMA), Evolved Data Optimized (EV-DO), 1xEV-DO, EV-DO Revision A, EV-DO Revision B, High-Speed Packet Access (HSPA), High-Speed Downlink Packet Access (HSDPA), High-Speed Uplink Packet Access (HSUPA), Evolved High-Speed Packet Access (HSPA+), Long Term Evolution (LTE), AMPS, or used in wireless, cellular, or Internet of Things (IoT) networks (such as IEEE 802.15.4 protocols (e.g., Thread, ZigBee, and Z-Wave), 6LoWPAN, Bluetooth Low Energy (BLE), LTE Machine Type Communications (LTE) MTC), Narrowband LTE (NB-LTE), Cellular IoT (CIoT), Narrowband IoT (NB-IoT), BT Smart, Wi-Fi, LTE-U, LTE-Direct, MuLTEfire, and other known signals transmitted within a wide-area physical layer interface (PHY) for relatively extended distances (such as Random Phase Multiple Access (RPMA), Ultra Narrowband (UNB), Low Power Long Range (LoRa), Low Power Long Range Wide Area Network (LoRaWAN), Weightless), Global Interoperability Microwave Access (WiMAX), or systems utilizing 3G, 4G, or 5G or further implementations thereof) to transmit and receive RF signals in any device, system, or network.
[0047] The term "System-on-a-Chip" (SoC) is used herein to refer to a single integrated circuit (IC) chip containing multiple resources and / or processors integrated on a single substrate. A single SoC may contain circuitry for digital, analog, mixed-signal, and radio frequency functions. A single SoC may also include any number of general-purpose and / or special-purpose processors (digital signal processors, modem processors, video processors, etc.), blocks of memory (e.g., ROM, RAM, flash memory, etc.), and resources (e.g., timers, voltage regulators, oscillators, etc.). A SoC may also include software for controlling the integrated resources and processors, as well as software for controlling peripheral devices.
[0048] The term "System-in-Package" (SIP) is used herein to refer to a single module or package containing multiple resources, computing units, cores and / or processors on two or more IC chips, a substrate, or a System-on-a-Chip (SoC). For example, a SIP may include a single substrate on which multiple IC chips or semiconductor dies are stacked in a vertical configuration. Similarly, a SIP may include one or more multi-chip modules (MCMs) on which multiple ICs or semiconductor dies are packaged into a unified substrate. A SIP may also include multiple separate SoCs coupled together and packaged adjacent to each other via high-speed communication circuitry (such as on a single motherboard or in a single IoT device). The proximity of SoCs facilitates high-speed communication and the sharing of memory and resources.
[0049] As used herein, the terms “SIM,” “SIM card,” and “subscriber identity module” can be used interchangeably to refer to a memory that may be an integrated circuit or embedded in a removable card and stores the International Mobile Subscriber Identity (IMSI), associated keys, and / or other information used to identify and / or authenticate wireless devices on a network and enable communication services with the network. Examples of SIM include the Universal Subscriber Identity Module (USIM) provided in the Long Term Evolution (LTE) 3GPP standard and the Removable Subscriber Identity Module (R-UIM) provided in the 3GPP standard. Universal Integrated Circuit Card (UICC), Embedded UICC (eUICC), Integrated SIM (iSIM), and Integrated UICC (iUICC) are other terms for SIM. Additionally, SIM can also refer to a Virtual SIM (VSIM), which can be implemented as a remote SIM profile loaded into an application on a wireless device and implements normal SIM functionality on the wireless device.
[0050] Because the information stored in a SIM enables a wireless device to establish a communication link with a specific network for a specific communication service or multiple services, the term "SIM" is also used herein as a shorthand reference for the communication service associated with and enabled by the information stored in a particular SIM, since the SIM, the communication network, and the services and subscriptions supported by that network are related to each other. Similarly, the term SIM can also be used as a shorthand reference for the protocol stack and / or modem stack, as well as the communication processes used in establishing and conducting communication services with subscriptions and networks enabled by the information stored in a particular SIM.
[0051] The various embodiments described herein use the term "server" to refer to any computing device capable of functioning as a server (such as a primary switching server, web server, mail server, file server, content server, or any other type of server). A server can be a dedicated computing device or a computing device that includes a server module (e.g., running an application that causes the computing device to function as a server). A server module (e.g., a server application) can be a full-featured server module or a lightweight server module or secondary server module (e.g., a lightweight server application or secondary server application) configured to provide synchronization services between dynamic databases on a receiver device. A lightweight server or secondary server can be a simplified version of server-type functionality that can be implemented on the receiver device, enabling the receiver device to function as an Internet server (e.g., an enterprise email server) only to the extent necessary to provide the functionality described herein.
[0052] As used herein, the terms “network,” “system,” “wireless network,” “cellular network,” and “wireless communication network” can be used interchangeably to refer to part or all of an operator’s wireless network associated with a wireless device and / or a subscription on that wireless device. The technologies described herein can be used in a variety of wireless communication networks, such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), FDMA, Orthogonal FDMA (OFDMA), Single Carrier FDMA (SC-FDMA), and others. Generally, any number of wireless networks can be deployed in a given geographic area. Each wireless network can support at least one radio access technology, which can operate on one or more frequencies or frequency ranges. For example, a CDMA network can implement Universal Terrestrial Radio Access (UTRA) (including the Wideband Code Division Multiple Access (WCDMA) standard), CDMA2000 (including the IS-2000, IS-95, and / or IS-856 standards), etc. In another example, a TDMA network can implement GSM Enhanced Data Rate (EDGE) for GSM evolution. In another example, OFDMA networks can implement Evolved DURA (E-DURA) (including the LTE standard), IEEE 802.11 (WiFi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash-OFDM, etc. References can be made to wireless networks using the LTE standard, and therefore the terms "Evolved Universal Terrestrial Radio Access," "E-UTRAN," and "eNodeB" can be used interchangeably herein to refer to wireless networks. However, such references are provided merely as examples and are not intended to exclude wireless networks using other communication standards. For example, although various third-generation (3G), fourth-generation (4G), and fifth-generation (5G) systems are discussed herein, those systems are referenced only as examples and can be replaced by future-generation systems (e.g., sixth-generation (6G) or higher) in various examples.
[0053] The terms “network operator,” “operator,” “mobile network operator,” “carrier,” and “service provider” are used interchangeably herein to describe a wireless communication service provider that owns or controls elements to sell and deliver communication services to end users and to provide the necessary supplies and credentials as a strategy to be implemented in user equipment subscriptions.
[0054] The term "LwM2M client computing device" is used herein to refer to any wireless device that uses an LwM2M protocol (such as the LwM2M protocol as defined in the Open Mobile Alliance (OMA) LwM2M specification) to communicate with another device operating as an LwM2M server. An LwM2M client computing device may include an LwM2M client component running on a processor of the LwM2M client computing device, which implements client-side operation according to an LwM2M protocol (such as the LwM2M protocol as defined in the OMA LwM2M specification) for interacting with an LwM2M server.
[0055] The term "LwM2M server" is used herein to refer to any computing device that uses an LwM2M protocol (such as the LwM2M protocol defined according to the OMA LwM2M specification) to communicate with LwM2M client computing devices. An LwM2M server may include an LwM2M server component running on a processor of the LwM2M server, which implements server-side operations according to an LwM2M protocol (such as the LwM2M protocol defined according to the OMA LwM2M specification) for interacting with LwM2M client computing devices.
[0056] The LwM2M protocol (such as the LwM2M protocol defined according to the OMA LwM2M specification) defines various LwM2M objects that may include one or more Resource Definition Information Elements (IEs). For example, the LwM2M protocol defines a security object (object ID=0), a server object (object ID=1), an access control object (object ID=2), a device object (object ID=3), a connectivity monitoring object (object ID=4), and a firmware update object (object ID=5).
[0057] Various embodiments may provide an LwM2M object (such as a remote SIM provisioning object) that enables the SIM profile of an LwM2M client computing device (such as an IoT device) to be updated to a new operator's SIM profile. In various embodiments, the remote SIM provisioning object may be an LwM2M object that indicates an available update for the SIM profile of the LwM2M client computing device (such as an IoT device). In various embodiments, the remote SIM provisioning object may be transmitted between the LwM2M client computing device (such as an IoT device) and an LwM2M server to support the provisioning of remote SIM profiles to the LwM2M client computing device. Because the LwM2M connection between the LwM2M server and the LwM2M client computing device (such as an IoT device) may be a secure connection (such as a Datagram Transport Layer Security (DTLS) connection, a Transport Layer Security (TLS) connection, etc.), various embodiments enable the LwM2M client computing device to connect to any LwM2M server via a secure connection to obtain a remote SIM provisioning object.
[0058] In various embodiments, the MNO server can send an instruction to the LwM2M server regarding a SIM profile update for an LwM2M client computing device (such as an IoT device). This instruction can be sent directly from the MNO server to the LwM2M server. In this way, the MNO server can avoid communicating with the SM-DP+ server as required by the RSP specification and directly instruct the LwM2M server that a SIM profile update for the LwM2M client computing device is imminent.
[0059] In some embodiments, an instruction from the MNO server for an update of the SIM profile for an LwM2M client computing device may include one or more addresses from the MNO server indicating that the SIM profile package is available for download by the LwM2M client computing device. As an example, the address may be one or more Uniform Resource Indicators (URIs), one or more Uniform Resource Locators (URLs), etc. In this way, the address can act as a pointer to a device from which the LwM2M client computing device can download the SIM profile package. As used herein, a "SIM profile package" may be a data file formatted for storage and execution by the processor of the LwM2M client device to install and / or update the SIM profile on the LwM2M client device. The address may be an address associated with the MNO server itself and / or an address associated with a server other than the MNO server (such as a SIM profile package server). This one or more addresses enable the LwM2M client device to retrieve the SIM profile package from the MNO server and / or another server (such as a SIM profile package server).
[0060] In some embodiments, the MNO server may send a SIM profile package to the LwM2M server. As a supplement to including one or more addresses from the MNO server that are available for download by the LwM2M client computing device, the SIM profile package may be sent in an instruction from the MNO server to the LwM2M server for an update of the SIM profile for the LwM2M client computing device. Alternatively, as an alternative to including one or more addresses from the MNO server that are available for download by the LwM2M client computing device, the SIM profile package may be sent in an instruction from the MNO server to the LwM2M server for an update of the SIM profile for the LwM2M client computing device. Serving the SIM profile package from the MNO server to the LwM2M server enables the LwM2M server to push the SIM profile package to the LwM2M client computing device (such as an IoT device) by sending the SIM profile package to one or more remote SIM serving objects.
[0061] In various embodiments, the LwM2M client computing device and / or LwM2M server may generate and send / receive remote SIM provisioning objects to each other to exchange information and / or instructions associated with the remote SIM profile provisioning. In some embodiments, the remote SIM provisioning object may include various information elements (IES) to indicate information and / or instructions associated with the remote SIM profile provisioning. In some embodiments, in response to information and / or instructions indicated in a received remote SIM provisioning object (such as information and / or instructions indicated in one or more IEs of a received remote SIM provisioning object), the LwM2M client computing device and / or LwM2M server may take various actions associated with the remote SIM profile provisioning.
[0062] In some embodiments, a remote SIM provisioning object may include information indicating one or more RF bands supported by an LwM2M client computing device (such as an IoT device). For example, the remote SIM provisioning object may include a list of supported LTE bands, a list of supported EGPRS bands, a list of supported TD-SCDMA bands, a list of supported WCDMA bands, a list of supported WiMax bands, a list of supported NB-IoT bands, and / or a list of supported 5G bands. An LwM2M client computing device (such as an IoT device) may send a remote SIM provisioning object to an LwM2M server to notify the LwM2M server of the RF bands supported by the LwM2M client computing device. In some embodiments, in response to receiving an indication from an MNO server for a SIM profile update for an LwM2M client computing device, the LwM2M server may determine whether the LwM2M client computing device supports the RF bands associated with the SIM profile update for the LwM2M client computing device. In response to determining that the LwM2M client does not support the RF band associated with the SIM profile update, the LwM2M server can send an indication of a SIM profile update error to the MNO server. In this way, the LwM2M server can perform the check to ensure that the LwM2M client computing device can support future operator coverage associated with the SIM profile update.
[0063] In some embodiments, a remote SIM provisioning object may include information indicating a SIM profile update protocol supported by the LwM2M client computing device (such as an IoT device). The SIM profile update protocol may be a communication protocol configured by the LwM2M client computing device (such as an IoT device) to retrieve SIM profile packets. Examples of SIM profile update protocols may include Restricted Application Protocol (CoAP), Secure CoAP (COAPS), Hypertext Transfer Protocol (HTTP) 1.1, HTTP Secure (HTTPS) 1.1, or any other suitable communication protocol. The LwM2M client computing device (such as an IoT device) may send a remote SIM provisioning object to an LwM2M server to inform the LwM2M server of the SIM profile update protocols supported by the LwM2M client computing device. In some embodiments, in response to receiving an indication from an MNO server including one or more addresses from the MNO server that a SIM profile packet is available for download by the LwM2M client computing device for a SIM profile update for that LwM2M client computing device, the LwM2M server may determine whether the LwM2M client computing device supports a SIM profile update protocol. The LwM2M server can select one or more addresses, at least in part, based on the SIM profile update protocol supported by the LwM2M client computing device. In this way, the LwM2M server can ensure that the address (such as a URI) selected for the LwM2M client computing device has a format supported by that LwM2M client computing device. As a specific example, in a scenario where the LwM2M client computing device sends an instruction to the LwM2M server indicating a remote SIM provisioning object that only supports CoAP, the LwM2M server can ensure that a CoAP URI, rather than an HTTP URI, is selected to be sent to the LwM2M client computing device, because the LwM2M client computing device may not support HTTP.
[0064] In some embodiments, a remote SIM provisioning object may include information indicating a SIM profile update delivery method supported by an LwM2M client computing device (such as an IoT device). For example, an LwM2M client computing device may support a pull delivery method, where the LwM2M client computing device is able to request a SIM profile package from an address (such as a specific URI). As another example, an LwM2M client computing device may support a push delivery method, where the LwM2M client computing device receives a SIM profile package from an LwM2M server in one or more remote SIM provisioning objects. Furthermore, some LwM2M client computing devices may support both push and pull methods. In some embodiments, a remote SIM provisioning object may include information indicating that the LwM2M client computing device supports pull-only delivery, push-only delivery, or both push and pull delivery. In a scenario where the LwM2M client computing device supports pull-only delivery, the LwM2M server may provide an address (such as a URI) from which the SIM profile package can be downloaded. In scenarios where the LwM2M client computing device supports push-only delivery, the LwM2M server can send one or more remote SIM provisioning objects, including a SIM profile package as a resource within the remote SIM provisioning object. In scenarios where the LwM2M client computing device supports both push and pull delivery, the LwM2M server can choose one or both delivery methods (e.g., the LwM2M server can send one or more remote SIM provisioning objects, including a SIM profile package as a resource within the remote SIM provisioning object, and / or the LwM2M server can provide an address (such as a URI) from which the SIM profile package can be downloaded).
[0065] In some embodiments, the remote SIM provisioning object may include information indicating the amount (or size) of free memory space on the SIM of the LwM2M client computing device. For example, free memory space may be indicated as a value (in kilobytes) of an estimated amount of available storage space on the SIM of the LwM2M client computing device. The LwM2M client computing device (such as an IoT device) may send the remote SIM provisioning object to the LwM2M server to notify the LwM2M server of the amount (or size) of free memory space on the SIM of the LwM2M client computing device. In some embodiments, in response to receiving an indication from the MNO server for a SIM profile update for the LwM2M client computing device, the LwM2M server may determine whether the free memory space of the SIM of the LwM2M client computing device is equal to or greater than the memory requirement for the SIM profile update for the LwM2M client computing device. In response to determining that the free memory space of the SIM is less than the memory requirement for the SIM profile update for the LwM2M client computing device, the LwM2M server may send an indication of a SIM profile update error to the MNO server. In this way, the LwM2M server can perform checks to ensure that the LwM2M client computing device has sufficient memory to support SIM profile updates. In some embodiments, the remote SIM provisioning object may include information indicating the total memory space of the SIM on the LwM2M client computing device.
[0066] In some embodiments, the remote SIM provisioning object may include information indicating the current service provider name of the LwM2M client computing device. For example, the current service provider name may be indicated as a Mobile Network Code (MNC), Mobile Country Code (MCC), and MNC pair (e.g., Public Land Mobile Network (PLMN) Identifier (ID)), another type of code, a text string, etc. In some embodiments, the remote SIM provisioning object may include information indicating the current SIM type of the LwM2M client computing device. For example, the SIM type may be indicated as a full-size SIM, mini-size SIM, micro SIM, nano SIM, USIM, embedded SIM (eSIM), UICC, soft SIM, thin SIM, embedded UICC (eUICC), integrated SIM (iSIM), integrated UICC (iUICC), etc. In some embodiments, the remote SIM provisioning object may include information indicating one or more supported SIM types of the LwM2M client computing device. For example, the one or more supported SIM types may be indicated as a full-size SIM, mini-size SIM, micro SIM, nano SIM, USIM, eSIM, UICC, soft SIM, thin SIM, eUICC, iSIM, iUICC, etc.
[0067] In some embodiments, the remote SIM provisioning object may include information indicating the profile name and / or profile version. For example, the LwM2M server may indicate the profile name and / or profile version number of the SIM profile sent to and / or to be sent to LwM2M client computing devices (such as IoT devices).
[0068] In some embodiments, a remote SIM provisioning object may include a profile update trigger indication. The profile update trigger indication may be an IE of the remote SIM provisioning object that, when present, triggers a receiving LwM2M client computing device (such as an IoT device) to update the SIM profile. The profile update trigger indication may be executable code or a code snippet executable by the LwM2M client computing device to update the SIM profile using a previously successfully downloaded SIM profile package. In some embodiments, a remote SIM provisioning object including a profile update trigger indication may be sent in response to receiving an indication from the LwM2M client computing device that a SIM profile package has been successfully downloaded.
[0069] In some embodiments, a remote SIM provisioning object may include a status indication of the LwM2M client computing device relative to a SIM profile package. For example, the LwM2M client computing device may be in an idle state before downloading the SIM profile package or after successfully updating the SIM profile; the LwM2M client computing device may be in a downloading state when the SIM profile package data is received by the LwM2M client computing device and before the download is successfully completed; the LwM2M client computing device may be in a downloaded state after successfully completing the download of the SIM profile package and before an update is triggered; and the LwM2M client computing device may be in a downloaded state after an update is triggered and before the successful update of the SIM profile is completed. In some embodiments, the status indication of the LwM2M client computing device in the remote SIM provisioning object may be used by the LwM2M server to control the provisioning of SIM profile updates. For example, in response to the LwM2M client computing device reporting its status as downloaded, the LwM2M server may send only a remote SIM provisioning object including a profile update trigger indication.
[0070] In some embodiments, the remote SIM provisioning object may include an update result indication. The update result indication may be an indication of the result of an attempt to download a SIM profile package and / or the result of an attempt to update a SIM profile using the downloaded SIM profile package. For example, the update result indication may indicate that the profile was successfully updated, that there is insufficient SIM memory available for the new SIM profile package, that the LwM2M client computing device exhausted its random access memory (RAM) during the download process, that a connection was lost during the download process, that an integrity check for the SIM profile package failed, that the SIM profile package has an unsupported package type, that the address (such as a URI) associated with the SIM profile package is invalid, that the SIM profile update protocol used is not supported, that the SIM profile package could not be retrieved from the address (e.g., URI), and so on.
[0071] In some embodiments, the remote SIM provisioning object may include an Integrated Circuit Card Identifier (ICCID). The ICCID may be an indication of a unique identifier for the UICC and / or smart card of the LwM2M client computing device. In some embodiments, the remote SIM provisioning object may include an eUICC Identifier (ID). The eUICC ID may be a registered identifier for the eUICC of the LwM2M client computing device. In some embodiments, the remote SIM provisioning object may include an indication of a profile type. The profile type may indicate the type of SIM profile and may be defined by the MNO.
[0072] In some embodiments, the LwM2M computing device may need to be restarted after updating the SIM profile. In some embodiments, once a new SIM profile is successfully installed and / or updated on the LwM2M client computing device, the profile package version indicator in the remote SIM provisioning object sent from the LwM2M computing device to the LwM2M server can be updated to the latest version number. In some embodiments, once a new SIM profile is successfully installed and / or updated on the LwM2M client computing device, the provider name indicator in the remote SIM provisioning object sent from the LwM2M computing device to the LwM2M server can be updated to the provider name.
[0073] Although various examples of IoT devices are discussed in this article, IoT devices are merely one example of LwM2M client computing devices that can implement various embodiments, and other devices (such as smartphones) can replace IoT devices in various examples.
[0074] Figure 1This is a system block diagram illustrating an example communication system 100 suitable for implementing any of the various embodiments. Communication system 100 can be a 5G New Radio (NR) network, or any other suitable network (such as an LTE network, a 5G network, etc.). Although Figure 1 A 5G network is shown, but subsequent networks may include the same or similar elements. Therefore, references to 5G networks and 5G network elements in the following description are for illustrative purposes and are not intended to be limiting.
[0075] Communication system 100 may include a core network 140 and various mobile devices (shown as...) Figure 1 The communication system 100 comprises a heterogeneous network architecture including wireless devices 120a-120e (UE and IoT devices), LwM2M server 190, and MNO server 191. The communication system 100 may also include multiple base stations (shown as BS110a, BS110b, BS110c, and BS110d) and other network entities. A base station is an entity that communicates with wireless devices and may also be referred to as a Node B, LTE Evolved Node B (eNodeB or eNB), Access Point (AP), Radio Headend, Transmit / Receive Point (TRP), New Radio Base Station (NR BS), 5G Node B (NB), Next Generation Node B (gNodeB or gNB), and so on. Each base station can provide communication coverage for a specific geographic area. In 3GPP, the term "cell" can refer to the coverage area of a base station, or a base station subsystem serving that coverage area, or a combination thereof, depending on the context in which the term is used. The core network 140 can be any type of core network, such as an LTE core network (e.g., an Evolved Packet Core (EPC) network), a 5G core network, etc.
[0076] Base stations 110a-110d can provide communication coverage for macrocells, picocells, femtocells, another type of cell, or a combination thereof. A macrocell can cover a relatively large geographic area (e.g., a radius of several kilometers) and can allow unrestricted access by mobile devices with a service subscription. A picocell can cover a relatively small geographic area and can allow unrestricted access by mobile devices with a service subscription. A femtocell can cover a relatively small geographic area (e.g., a residential area) and can allow restricted access by mobile devices associated with that femtocell (e.g., mobile devices in a closed subscriber group (CSG)). A base station used for a macrocell can be referred to as a macro BS. A base station used for a picocell can be referred to as a pico BS. A base station used for a femtocell can be referred to as a femtocell BS or a home BS. Figure 1In the example shown, base station 110a can be a macro BS for macro cell 102a, base station 110b can be a pico BS for pico cell 102b, and base station 110c can be a femto BS for femto cell 102c. Base stations 110a-110d can support one or more (e.g., three) cells. The terms “eNB,” “base station,” “NR BS,” “gNB,” “TRP,” “AP,” “Node B,” “5G NB,” and “cell” are used interchangeably herein.
[0077] In some examples, the cell may not be fixed, and the geographical area of the cell may move depending on the location of the mobile base station. In some examples, base stations 110a-110d may be interconnected with each other and to one or more other base stations or network nodes (not shown) in the communication network 100 via various types of backhaul interfaces (such as direct physical connections, virtual networks, or combinations thereof using any suitable transport networks).
[0078] Base stations 110a-110d can communicate with the core network 140 via wired or wireless communication link 126. Wireless devices 120a-120e can communicate with base stations 110a-110d via wireless communication link 122.
[0079] The wired communication link 126 can use various wired networks (e.g., Ethernet, TV cable, telephone, fiber optic and other forms of physical network connection) that can use one or more wired communication protocols (such as Ethernet, point-to-point protocol, high-level data link control (HDLC), advanced data communication control protocol (ADCCP) and transmission control protocol / Internet protocol (TCP / IP)).
[0080] The communication system 100 may also include a relay station (e.g., relay BS 110d). A relay station is an entity capable of receiving data transmissions from an upstream station (e.g., a base station or mobile device) and transmitting that data to a downstream station (e.g., a wireless device or base station). A relay station can also be a mobile device capable of relaying transmissions for other wireless devices. Figure 1 In the example shown, relay station 110d can communicate with macro base station 110a and wireless device 120d to facilitate communication between base station 110a and wireless device 120d. A relay station can also be referred to as a relay BS, relay base station, relay, etc.
[0081] Communication system 100 can be a heterogeneous network comprising different types of base stations (e.g., macro base stations, pico base stations, femto base stations, relay base stations, etc.). These different types of base stations can have different transmit power levels, different coverage areas, and different effects on interference in communication system 100. For example, macro base stations can have high transmit power levels (e.g., 5 to 40 watts), while pico base stations, femto base stations, and relay base stations can have lower transmit power levels (e.g., 0.1 to 2 watts).
[0082] Network controller 130 can be coupled to a set of base stations and can provide coordination and control over these base stations. Network controller 130 can communicate with the base stations via backhaul. Base stations can also communicate with each other directly or indirectly, for example, via wireless or wired backhaul.
[0083] Wireless devices 120a, 120b, and 120c can be distributed throughout the communication system 100, and each wireless device can be fixed or mobile. Wireless devices can also be referred to as access terminals, terminals, mobile stations, subscriber units, stations, user equipment (UE), IoT devices, etc.
[0084] Macro base station 110a can communicate with communication network 140 on wired or wireless communication link 126. Wireless devices 120a, 120b, and 120c can communicate with base stations 110a-110d on wireless communication link 122.
[0085] Wireless communication links 122 and 124 may include multiple carrier signals, frequencies, or frequency bands, each of which may include multiple logical channels. Wireless communication links 122 and 124 may utilize one or more radio access technologies (RATs). Examples of RATs that can be used in wireless communication links include 3GPP LTE, 3G, 4G, 5G (e.g., NR), GSM, CDMA, WCDMA, WiMAX, Time Division Multiple Access (TDMA), and other mobile phone communication technology cellular RATs. Further examples of RATs that can be used in one or more of the various wireless communication links 122 and 124 within the communication system 100 include mid-range protocols (such as Wi-Fi, LTE-U, LTE-Direct, LAA, MuLTEfire) and relatively short-range RATs (such as ZigBee, Bluetooth, and Bluetooth Low Energy (LE)).
[0086] Some wireless networks (e.g., LTE) utilize Orthogonal Frequency Division Multiplexing (OFDM) on the downlink and Single-Carrier Frequency Division Multiplexing (SC-FDM) on the uplink. OFDM and SC-FDM divide the system bandwidth into multiple (K) orthogonal subcarriers, often referred to as frequency modulation, frequency bands, etc. Each subcarrier can be modulated with data. Generally, modulation symbols are transmitted in the frequency domain for OFDM and in the time domain for SC-FDM. The spacing between adjacent subcarriers can be fixed, and the total number of subcarriers (K) can depend on the system bandwidth. For example, the subcarrier spacing could be 15 kHz, and the minimum resource allocation (called a "resource block") could be 12 subcarriers (or 180 kHz). Therefore, for system bandwidths of 1.25, 2.5, 5, 10, or 20 MHz, the nominal Fast Fourier Transform (FFT) size could be 128, 256, 512, 1024, or 2048, respectively. System bandwidth can also be divided into sub-bands. For example, a sub-band can cover 1.08MHz (i.e., 6 resource blocks), and for system bandwidths of 1.25, 2.5, 5, 10, or 20MHz, there can be 1, 2, 4, 8, or 16 sub-bands, respectively.
[0087] While some embodiments may be described using terminology and examples associated with LTE technology, some embodiments may be applicable to other wireless communication systems, such as New Radio (NR) or 5G networks. NR can utilize OFDM with a cyclic prefix (CP) on both the uplink (UL) and downlink (DL) and includes support for half-duplex operation using Time Division Duplex (TDD). A single component carrier bandwidth of 100 MHz can be supported. An NR resource block can span 12 subcarriers with a subcarrier bandwidth of 75 kHz over a duration of 0.1 milliseconds (ms). Each radio frame can consist of 50 subframes with a length of 10 ms. Therefore, each subframe can have a length of 0.2 ms. Each subframe can indicate the link direction for data transmission (i.e., DL or UL), and the link direction of each subframe can be dynamically switched. Each subframe may include DL / UL data and DL / UL control data. Beamforming can be supported, and beam direction can be dynamically configured. Multiple-input multiple-output (MIMO) transmission with pre-decoded encoding can also be supported. MIMO configuration in DL can support up to 8 transmit antennas (with up to 8 streams of multilayer DL transmission) and up to 2 streams per radio device. Multilayer transmission with up to 2 streams per radio device is supported. Up to 8 serving cells can be used to support aggregation of multiple cells. Optionally, NR can support different air interfaces in addition to OFDM-based air interfaces.
[0088] Some mobile devices can be considered Machine-Type Communication (MTC) or Evolved or Enhanced Machine-Type Communication (eMTC) mobile devices. MTC and eMTC mobile devices include, for example, robots, drones, remote devices, sensors, meters, monitors, location markers, etc., which can communicate with a base station, another device (e.g., a remote device), or some other entity. Wireless nodes can provide connectivity to or to a network (e.g., a wide area network such as the Internet) or a cellular network, for example, via wired or wireless communication links. Some mobile devices can be considered Internet of Things (IoT) devices, or can be implemented as NB-IoT (Narrowband Internet of Things) devices. Wireless devices 120a-e can be included within a housing that houses components of the wireless device, such as processor components, memory components, similar components, or combinations thereof. Wireless devices 120a-e can be LwM2M client computing devices.
[0089] Generally, any number of communication systems and wireless networks can be deployed in a given geographical area. Each communication system and wireless network can support a specific Radio Access Technology (RAT) and can operate on one or more frequencies. RAT can also be referred to as radio technology, air interface, etc. Frequency can also be referred to as carrier, frequency channel, etc. Each frequency can support a single RAT in a given geographical area to avoid interference between communication systems using different RATs. In some cases, 4G / LTE and / or 5G / NR RAT networks can be deployed.
[0090] In some embodiments, two or more wireless devices 120a-e (e.g., shown as wireless device 120a and wireless device 120e) may communicate directly using one or more sidelink channels 124 (e.g., without using base stations 110a-110d as intermediaries). For example, wireless devices 120a-e may communicate using peer-to-peer (P2P) communication, device-to-device (D2D) communication, vehicle-to-everything (V2X) protocols (e.g., which may include vehicle-to-vehicle (V2V) protocols, vehicle-to-infrastructure (V2I) protocols, or similar protocols), mesh networks, or similar networks, or combinations thereof. In this case, wireless devices 120a-e may perform scheduling operations, resource selection operations, and other operations described elsewhere herein as performed by base station 110a.
[0091] LwM2M server 190 can connect to core network 140 and / or be part of core network 140. LwM2M server 190 can communicate with wireless devices 120a-e via core network 140 and base stations 110a-110d using LwM2M protocols (such as those defined according to the OMA LwM2M specification). Communication between LwM2M server 190 and wireless devices 120a-e can be via secure connections, such as DTLS connections, TLS connections, etc. LwM2M server 190 can be configured to exchange remote SIM provisioning objects with wireless devices 120a-e via communication connections (such as secure connections (e.g., DTLS connections, TLS connections, etc.)).
[0092] LwM2M server 190 can connect to MNO server 191 via core network 140 and / or outside of core network 140. MNO server 191 can be configured to provide LwM2M server 190 with instructions and / or SIM profile packets for SIM profile updates to LwM2M client computing devices (such as wireless devices 120a-e). In some configurations, MNO server 191 can communicate with wireless devices 120a-e via core network 140 and base stations 110a-110d. For example, MNO server 191 can receive and respond to requests for SIM profile packets from wireless devices 120a-e.
[0093] Figure 2 Example wireless modem systems 200 implementing various embodiments for use in IoT devices (e.g., IoT devices 120a-e) are illustrated. Various embodiments can be implemented on multiple single-processor and multi-processor computer systems, including system-on-a-chip (SOC) or system-in-package (SIP) systems.
[0094] refer to Figure 1 and Figure 2The illustrated example wireless device 200 (which may be a SIP in some embodiments) includes two SOCs 202, 204 coupled to a clock 206, a voltage regulator 208, at least one SIM 268 and / or SIM interface, and a wireless transceiver 266 configured to transmit / receive wireless communications to / from a network wireless device (such as base station 110a) via an antenna (not shown). In some embodiments, the first SOC 202 operates as the central processing unit (CPU) of the wireless device, executing instructions by performing arithmetic, logic, control, and input / output (I / O) operations specified by instructions from a software application. In some embodiments, the second SOC 204 may operate as a dedicated processing unit. For example, the second SOC 204 may operate as a dedicated 5G processing unit responsible for managing high-capacity, high-speed (e.g., 5Gbps) and / or ultra-high frequency shortwave length (e.g., 28GHz millimeter-wave (mmWave) spectrum) communications.
[0095] The first SOC 202 may include a digital signal processor (DSP) 210, a modem processor 212, a graphics processor 214, an application processor (AP) 216, one or more coprocessors 218 (e.g., vector coprocessors) connected to one or more of the processors, memory 220, custom circuitry 222, system components and resources 224, an interconnect / bus module 226, one or more temperature sensors 230, a thermal management unit 232, and a thermal power envelope (TPE) component 234. The second SOC 204 may include a 5G modem processor 252, a power management unit 254, an interconnect / bus module 264, multiple millimeter-wave transceivers 256, memory 258, and various additional processors 260 (such as application processors, packet processors, etc.).
[0096] Each processor 210, 212, 214, 216, 218, 252, 260 may include one or more cores, and each processor / core may perform operations independently of other processors / cores. For example, the first SOC 202 may include a processor running a first type of operating system (e.g., FreeBSD, LINUX, OS X, etc.) and a processor running a second type of operating system (e.g., MICROSOFT WINDOWS 10). Additionally, any or all of processors 210, 212, 214, 216, 218, 252, 260 may be included as part of a processor cluster architecture (e.g., synchronous processor cluster architecture, asynchronous or heterogeneous processor cluster architecture, etc.).
[0097] The first SOC 202 and the second SOC 204 may include various system components, resources, and custom circuitry for managing sensor data, analog-to-digital conversion, wireless data transmission, and performing other specialized operations, such as decoding data packets and processing encoded audio and video signals for rendering in a web browser. For example, the system components and resources 224 of the first SOC 202 may include power amplifiers, voltage regulators, oscillators, phase-locked loops, peripheral bridges, data controllers, memory controllers, system controllers, access ports, timers, and other similar components used to support processors and software clients running on wireless devices. System components and resources 224 and / or custom circuitry 222 may also include circuitry for interfacing with peripheral devices, such as cameras, electronic displays, wireless communication devices, external memory chips, etc.
[0098] The first SOC 202 and the second SOC 204 can communicate via interconnect / bus module 250. Various processors 210, 212, 214, 216, and 218 can be interconnected via interconnect / bus module 226 to one or more memory elements 220, system components and resources 224, custom circuitry 222, and thermal management unit 232. Similarly, processor 252 can be interconnected via interconnect / bus module 264 to power management unit 254, millimeter-wave transceiver 256, memory 258, and various additional processors 260. Interconnect / bus modules 226, 250, and 264 may include reconfigurable gate arrays and / or implement bus architectures (e.g., CoreConnect, AMBA, etc.). Communication can be provided by advanced interconnects such as high-performance on-chip networks (NoC).
[0099] The first SOC 202 and / or the second SOC 204 may also include input / output modules (not shown) for communicating with external SOC resources such as clock 206, voltage regulator 208, one or more wireless transceivers 266, and at least one SIM 268 and / or SIM interface (i.e., an interface for receiving one or more SIM cards)). External SOC resources (e.g., clock 206, voltage regulator 208) may be shared by two or more internal SOC processors / cores. At least one SIM 268 (or one or more SIM cards coupled to one or more SIM interfaces) may store information supporting multiple subscriptions (including a first 5G NR subscription and a second 5G NR subscription, etc.).
[0100] In addition to the example SIP 200 discussed above, various embodiments can also be implemented in various computing systems, which may include a single processor, multiple processors, multi-core processors, or any combination thereof.
[0101] Figure 3A An example data retrieval architecture 300 applicable to various embodiments is shown. References Figures 1 to 3A Architecture 300 illustrates an example of data calls between an IoT device 302 (e.g., wireless devices 120a-e) and a server 304 (e.g., LwM2M server 190). The IoT device 302 and server 304 can be configured to communicate using one or more communication protocols, such as User Datagram Protocol (UDP), Short Message Service (SMS), Internet Protocol (IP), non-IP protocols, Transmission Control Protocol (TCP), etc. As an example, the IoT device 302 can be an LwM2M client computing device. As an example, the server 304 can be an LwM2M server. Although shown as communicating with a single server 304, traffic from the IoT device 302 can be routed to multiple servers via the wireless network 100, each identified by its own corresponding destination port.
[0102] In some embodiments, the IoT device 302 may be configured with an LwM2M client 302a using the LwM2M device management protocol. The LwM2M device management protocol defines scalable resources and a data model. The LwM2M client 302a may employ service layer transport protocols (such as CoAP 302b and / or HTTP 302d) to implement secure data transmission, etc. The IoT device 302 may employ communication security protocols (such as DTLS 302c). DTLS, in particular, can provide security for datagram-based applications. Such applications may include one or more of UDP applications, SMS applications, non-IP applications, IP applications, TCP applications, etc. Various applications may be configured to send data from and / or receive data at the IoT device 302 via the wireless network 100.
[0103] In some embodiments, server 304 may be configured with an LwM2M server 304a, transport protocols (such as CoAP 304b and / or HTTP 304d), and security protocols (such as DTLS 304c). Application server 304 may be configured to utilize various communication protocols (such as UDP, SMS, TCP, IP protocol, non-IP protocols, etc.).
[0104] In various embodiments, LwM2M client 302a and LwM2M server 304a may exchange objects 312 with each other via wireless network 100 according to LwM2M protocols (such as the LwM2M protocol defined according to the OMA LwM2M specification). In some embodiments, one type of LwM2M object 312 exchanged may be a remote SIM provisioning object. For example, LwM2M client 302a may generate a remote SIM provisioning object and send it to LwM2M server 304a via wireless network 100, and LwM2M server 304a may receive the remote SIM provisioning object from LwM2M client 302a via wireless network 100. As another example, LwM2M server 304a may generate a remote SIM provisioning object and send it to LwM2M client 302a via wireless network 100, and LwM2M client 302a may receive the remote SIM provisioning object from LwM2M server 304a via wireless network 100.
[0105] In various embodiments, the MNO server 191 can send an instruction to the LwM2M server 304a for a SIM profile update for the IoT device 302. The instruction for a SIM profile update for the IoT device 302 can be sent directly from the MNO server 191 to the server 304. In this way, the MNO server 191 can avoid communicating with the SM-DP+ server as required in the RSP specification and directly indicate to the LwM2M server 304a that a SIM profile update for the IoT device 302 will occur.
[0106] In some embodiments, an indication from MNO server 191 to update the SIM profile for IoT device 302 may include one or more addresses from MNO server 191 from which LwM2M client 302a can download the SIM profile package. As an example, the address may be one or more URIs, one or more URLs, etc. In this way, the address can act as a pointer to a device from which LwM2M client 302a can download the SIM profile package. The address may be an address associated with MNO server 191 itself and / or an address associated with a server other than MNO server 191 (such as a SIM profile package server). This one or more addresses enable LwM2M client 302a to pull the SIM profile package from MNO server 191 and / or another server (such as a SIM profile package server).
[0107] In some embodiments, MNO server 191 may send a SIM profile package to LwM2M server 304a. As a supplement to including one or more addresses from MNO server 191 that are available for download by IoT device 302, the SIM profile package may be sent in an instruction from MNO server 191 to LwM2M server 304a for an update of the SIM profile for IoT device 302. Alternatively, as an alternative to including one or more addresses from MNO server 191 that are available for download by IoT device 302, the SIM profile package may be sent in an instruction from MNO server 191 to LwM2M server 304a for an update of the SIM profile for IoT device 302. Serving the SIM profile package from MNO server 191 to LwM2M server 304a enables LwM2M server 304a to push the SIM profile package to LwM2M client 302a by sending the SIM profile package to LwM2M client 302a in one or more remote SIM serving objects.
[0108] Figure 3B This is an example of a remote SIM provisioning object 351 according to various embodiments. Reference Figures 1 to 3B The remote SIM provisioning object 351 can be an example of object 312 exchanged between an LwM2M client computing device (e.g., 120a-e, 200, 302) and an LwM2M server (e.g., 190, 304, etc.). Although references... Figure 3B Specific IEs 353-377 have been described and discussed, but IEs 353-377 are merely examples of IEs that may exist in the remote SIM provisioning object 351, and according to various embodiments, there may be more or fewer IEs in the remote SIM provisioning object in various different combinations. For example, the IEs present in the remote SIM provisioning object may vary depending on whether the remote SIM provisioning object is generated and / or sent by an LwM2M client computing device or by an LwM2M server.
[0109] In some embodiments, the remote SIM provisioning object 351 may have an object ID assigned to distinguish it from other types of LwM2M objects. In some embodiments, the remote SIM provisioning object 351 may include an object uniform resource name (URN) 352, which may be a URI identifying the remote SIM provisioning object 351. As a specific example, the URN may be “urn:oma:lwm2m:ext:xxxx”. In some scenarios, multiple instances of the object URN may exist, and the object URN may be optional.
[0110] In some embodiments, the remote SIM provisioning object 351 may include a current SIM type IE 353. In some scenarios, the current SIM type IE 353 may be associated with a read operation. In some scenarios, a single instance of the current SIM type IE 353 may exist, which may be a mandatory IE. In some scenarios, the current SIM type IE 353 may be an integer IE that provides information about the current SIM type of the LwM2M client computing device. As specific examples, a value "0" may indicate a full-size SIM, a value "1" may indicate a mini-size SIM, a value "2" may indicate a micro SIM, a value "3" may indicate a nano-micro SIM, a value "4" may indicate a USIM, a value "5" may indicate an eSIM, a value "6" may indicate a UICC, a value "7" may indicate a soft SIM, a value "8" may indicate a thin SIM, a value "9" may indicate an eUICC, a value "10" may indicate an iSIM, and a value "11" may indicate an iUICC.
[0111] In some embodiments, the remote SIM provisioning object 351 may include a supported SIM type IE 354. In some scenarios, the supported SIM type IE 354 may be associated with a read operation. In some scenarios, a single instance of the supported SIM type IE 354 may exist, which may be a mandatory IE. In some scenarios, the supported SIM type IE 354 may be an integer IE that provides information about the currently supported SIM types of the LwM2M client computing device. As specific examples, a value "0" may indicate a full-size SIM, a value "1" may indicate a mini-size SIM, a value "2" may indicate a micro SIM, a value "3" may indicate a nano-micro SIM, a value "4" may indicate a USIM, a value "5" may indicate an eSIM, a value "6" may indicate a UICC, a value "7" may indicate a soft SIM, a value "8" may indicate a thin SIM, a value "9" may indicate an eUICC, a value "10" may indicate an iSIM, and a value "11" may indicate an iUICC.
[0112] In some embodiments, the remote SIM provisioning object 351 may include a service provider name 356. In some scenarios, the service provider name 356 may be associated with a read operation. In some scenarios, a single instance of the service provider name 356 may exist, which may be a mandatory IE. In some scenarios, the service provider name 356 may be a string representing the name of the service provider that the LwM2M client computing device is currently using to communicate with the LwM2M server.
[0113] In some embodiments, the remote SIM provisioning object 351 may include a profile IE 357. In some scenarios, the profile IE 357 may be associated with a write operation. In some scenarios, a single instance of the profile IE 357 may exist, which may be a mandatory IE. In some embodiments, the profile IE 357 may carry data of a SIM profile being pushed from the LwM2M server to the LwM2M client computing device.
[0114] In some embodiments, the remote SIM provisioning object 351 may include a profile URI 358. In some scenarios, the profile URI 358 may be associated with read and / or write operations. In some scenarios, a single instance of the profile URI 358 may exist, which may be mandatory. In some scenarios, the profile URI 358 may be a string, such as a string of size 0-255 bytes. In some scenarios, the profile URI 358 may be a URI from which an LwM2M client computing device can download a profile package. Once the LwM2M client computing device has received the profile package URI, it can perform the download at the next available opportunity. The URI format may be as defined in Internet Engineering Task Force (IETF) Request for Comments (RFC) 3986. For example, coaps: / / example.org / profile may be a syntactically valid URI. The URI scheme can control the protocol to be used. For example, for CoAP, the endpoint may or may not be an LwM2M server. A CoAP server that enables block-by-block transfers can serve as a server for hosting firmware repositories, and such a server can simply be used as a separate file server to make profile images available to LwM2M client computing devices. This server can also be a future operator server from which IoT devices will receive services after SIM profile updates.
[0115] In some embodiments, the remote SIM provisioning object 351 may include a profile update IE 359. In some scenarios, the profile update IE 359 may be associated with performing an operation. In some scenarios, a single instance of the profile update IE 359 may exist, which may be an optional IE. In some scenarios, the profile update IE 359 may be a profile update trigger indication, such as executable code or code snippets of the SIM profile that can be executed by an LwM2M client computing device to update the SIM profile using a previously successfully downloaded SIM profile package. In some scenarios, the profile update IE 359 may update the SIM profile by using the SIM profile package stored in the profile package IE 357 or by using the SIM profile package downloaded from the address (e.g., the URI) of the profile URI IE 358. The profile update IE 359 may only be executable if the value of the state IE 360 is "Downloaded".
[0116] In some embodiments, the remote SIM provisioning object 351 may include a state IE 360. In some scenarios, state IE 360 may be associated with a read operation. In some scenarios, a single instance of state IE 360 may exist, which may be a mandatory IE. In some scenarios, state IE 360 may indicate the current status regarding a SIM profile update for an LwM2M client computing device. The state IE 360 value may be set by the LwM2M client computing device. For example, a value "0" may indicate "idle" (e.g., before downloading or after a successful update), a value "1" may indicate "downloading" (e.g., indicating that a data sequence is being downloaded), a value "2" may indicate "downloaded," and a value "3" may indicate "updating." The status changes to "downloaded" if the profile package has been written to the package resource, or if the LwM2M client computing device has already downloaded the SIM profile package. Writing an empty string to the package profile URI (IE 358) or setting the package profile (IE 357) to NULL (e.g., '\0') will cause the LwM2M client computing device to reset its profile update state machine, so that the state (IE 360) is set to idle and the update result (IE 361) is set to 0. When in the downloaded state, a profile update (IE 359) can be triggered, and the state (IE 360) changes to updating. If updating the resource fails, the state (IE 360) returns to downloaded. If updating the resource succeeds, the state (IE 360) changes from updating to idle.
[0117] In some embodiments, the remote SIM provisioning object 351 may include an update result IE 361. In some scenarios, the update result IE 361 may be associated with a read operation. In some scenarios, a single instance of the update result IE 361 may exist, which may be a mandatory IE. The update result IE 361 may be an indication of the result of an attempt to download a SIM profile package and / or the result of an attempt to update the SIM profile using the downloaded SIM profile package. As specific examples, the value "0" of update result IE 361 can be the initial value and / or the value used when initiating an update after downloading; the value "1" of update result IE 361 can indicate that the profile was successfully updated; the value "2" of update result IE 361 can indicate that there is not enough SIM memory available for the new SIM profile package; the value "3" of update result IE 361 can indicate that the LwM2M client computing device ran out of RAM during the download process; the value "4" of update result IE 361 can indicate that the connection was lost during the download process; the value "5" of update result IE 361 can indicate that the integrity check for the SIM profile package failed; the value "6" of update result IE 361 can indicate that the SIM profile package has an unsupported package type; the value "7" of update result IE 361 can indicate that the address (such as a URI) associated with the SIM profile package is invalid; the value "8" of update result IE 361 can indicate that the SIM profile update protocol used is not supported; and the value "9" of update result IE 361 can indicate that the SIM profile package could not be retrieved from the address (e.g., URI).
[0118] In some embodiments, the remote SIM provisioning object 351 may include a profile name IE 362. In some scenarios, the profile name IE 362 may be associated with a read operation. In some scenarios, a single instance of the profile name IE 362 may exist, which may be an optional IE. In some scenarios, the profile name IE 362 may be a string representing the name of the SIM profile package, such as a string of size 0 to 255 bytes.
[0119] In some embodiments, the remote SIM provisioning object 351 may include profile version IE 363. In some scenarios, profile version IE 363 may be associated with a read operation. In some scenarios, a single instance of profile version IE 363 may exist, which may be an optional IE. In some scenarios, profile version IE 363 may be a string representing the version number of the SIM profile, such as a string of size 0 to 255 bytes.
[0120] In some embodiments, the remote SIM provisioning object 351 may include Profile Update Protocol Support IE 364. In some scenarios, Profile Update Protocol Support IE 364 may be associated with a read operation. In some scenarios, multiple instances of Profile Update Protocol Support IE 364 may exist, and these may be optional IEs. In some scenarios, Profile Update Protocol Support IE 364 may be an integer, and the value of Profile Update Protocol Support IE 364 instructs the LwM2M client implementation of the protocol for retrieving the SIM profile packet. Specific examples of the SIM profile update protocol that may be indicated by Profile Update Protocol Support IE 364 may include: a value "0" indicating a CoAP with additional support for chunked delivery, a value "1" indicating multiple CoAPs with additional support for chunked delivery, a value "2" indicating HTTP 1.1, and a value "3" indicating HTTPS 1.1. Any values not understood by the LwM2M server may be ignored.
[0121] In some embodiments, the remote SIM provisioning object 351 may include a profile update delivery method IE 365. In some scenarios, the profile update delivery method IE 365 may be associated with a read operation. In some scenarios, a single instance of the profile update delivery method IE 365 may exist, which may be a mandatory IE. In some scenarios, the profile update delivery method IE 365 may be an integer value used by the LwM2M client computing device to indicate support for transmitting a SIM profile image via a push method (e.g., using a profile packet IE 356) and / or a pull method (e.g., using a profile URI IE 357).
[0122] In some embodiments, the remote SIM provisioning object 351 may include free memory IE 366 on the SIM. In some scenarios, the free memory IE 366 on the SIM may be associated with a read operation. In some scenarios, a single instance of free memory IE 366 on the SIM may exist, which may be an optional IE. In some scenarios, the free memory IE 366 on the SIM may be an integer value (in kilobytes) indicating the estimated amount of currently available storage space on the SIM that can store data about the LwM2M client computing device.
[0123] In some embodiments, the remote SIM provisioning object 351 may include a total memory IE 367 on the SIM. In some scenarios, the total memory IE 367 on the SIM may be associated with a read operation. In some scenarios, a single instance of the total memory IE 367 on the SIM may exist, which may be an optional IE. In some scenarios, the total memory IE 367 on the SIM may be an integer value (in kilobytes) indicating the total amount of storage space on the SIM that can store data about the LwM2M client computing device.
[0124] In some embodiments, the remote SIM provisioning object 351 may include supported LTE band information IE 368. In some scenarios, the supported LTE band information IE 368 may be associated with a read operation. In some scenarios, there may be a single instance of the supported LTE band information IE 368, which may be an optional IE. In some scenarios, the supported LTE band information IE 368 may be a list of supported LTE bands.
[0125] In some embodiments, the remote SIM provisioning object 351 may include supported EGPRS band information IE 369. In some scenarios, the supported EGPRS band information IE 369 may be associated with a read operation. In some scenarios, there may be a single instance of the supported EGPRS band information IE 369, which may be an optional IE. In some scenarios, the supported EGPRS band information IE 369 may be a list of supported EGPRS bands.
[0126] In some embodiments, the remote SIM provisioning object 351 may include supported TD-SCDMA band information IE 370. In some scenarios, the supported TD-SCDMA band information IE 370 may be associated with a read operation. In some scenarios, there may be a single instance of the supported TD-SCDMA band information IE 370, which may be an optional IE. In some scenarios, the supported TD-SCDMA band information IE 370 may be a list of supported TD-SCDMA bands.
[0127] In some embodiments, the remote SIM provisioning object 351 may include supported WCDMA band information IE 355. In some scenarios, the supported WCDMA band information IE 355 may be associated with a read operation. In some scenarios, there may be a single instance of the supported WCDMA band information IE 355, which may be an optional IE. In some scenarios, the supported WCDMA band information IE 355 may be a list of supported WCDMA bands.
[0128] In some embodiments, the remote SIM provisioning object 351 may include supported CDMA-2000 frequency band information IE 371. In some scenarios, the supported CDMA-2000 frequency band information IE 371 may be associated with a read operation. In some scenarios, there may be a single instance of the supported CDMA-2000 frequency band information IE 371, which may be an optional IE. In some scenarios, the supported CDMA-2000 frequency band information IE 371 may be a list of supported CDMA-2000 frequency bands.
[0129] In some embodiments, the remote SIM provisioning object 351 may include supported WiMAX band information IE 372. In some scenarios, the supported WiMAX band information IE 372 may be associated with a read operation. In some scenarios, there may be a single instance of the supported WiMAX band information IE 372, which may be an optional IE. In some scenarios, the supported WiMAX band information IE 372 may be a list of supported WiMAX bands.
[0130] In some embodiments, the remote SIM provisioning object 351 may include supported NB-IoT band information IE 373. In some scenarios, the supported NB-IoT band information IE 373 may be associated with a read operation. In some scenarios, there may be a single instance of the supported NB-IoT band information IE 373, which may be an optional IE. In some scenarios, the supported NB-IoT band information IE 373 may be a list of supported NB-IoT bands.
[0131] In some embodiments, the remote SIM provisioning object 351 may include supported 5G band information IE 374. In some scenarios, the supported 5G band information IE 374 may be associated with a read operation. In some scenarios, there may be a single instance of the supported 5G band information IE 374, which may be an optional IE. In some scenarios, the supported 5G band information IE 374 may be a list of supported 5G bands.
[0132] In some embodiments, the remote SIM provisioning object 351 may include an ICCID IE 375. In some scenarios, the ICCID IE 375 may be associated with a read operation. In some scenarios, a single instance of the ICCID IE 375 may exist, which may be an optional IE. In some scenarios, the ICCID IE 375 may be a unique identifier for the UICC and / or smart card of the LwM2M client computing device.
[0133] In some embodiments, the remote SIM provisioning object 351 may include eUICC ID IE 376. In some scenarios, eUICC ID IE 376 may be associated with a read operation. In some scenarios, a single instance of eUICC ID IE 376 may exist, which may be an optional IE. In some scenarios, eUICC ID IE 376 may be a registered identifier of the eUICC of the LwM2M client computing device.
[0134] In some embodiments, the remote SIM provisioning object 351 may include a profile type IE 377. In some scenarios, the profile type IE 377 may be associated with a read operation. In some scenarios, a single instance of the profile type IE 377 may exist, which may be an optional IE. In some scenarios, the profile type IE 377 may indicate the type of the SIM profile and may be defined by the MNO.
[0135] Figure 4 This is a process flow diagram illustrating a method 400 for supporting remote SIM profile provisioning, executable by an LwM2M server according to various embodiments. (Reference) Figures 1 to 4 Method 400 can be implemented in hardware and / or software components that act as network elements of an LwM2M server (e.g., 190, 304a), and its operation can be controlled by one or more processors. For ease of reference, the hardware performing method 400 is generally referred to herein as a "processor".
[0136] In optional box 401, the processor can receive a remote SIM provisioning object from an LwM2M client computing device (e.g., 120a-e, 200, 302) that indicates SIM association information about that LwM2M client computing device. For example, the remote SIM provisioning object could be as described in the reference... Figure 3A and Figure 3B The remote SIM provisioning objects 312 and / or 351 are described. As a specific example, the remote SIM provisioning object may include, individually or in various combinations, various types of SIM association information about the LwM2M client computing device, such as supported delivery methods (e.g., push and / or pull), supported RF bands, available memory space for the SIM, SIM profile update protocols supported by the LwM2M client computing device, supported SIM types, etc. Box 401 may be optional, as no necessary communication may exist between the LwM2M server and the LwM2M client computing device before receiving an instruction for a SIM profile update for the LwM2M client computing device.
[0137] In block 402, the processor can receive an indication from an MNO server (e.g., MNO server 191) of a SIM profile update for the LwM2M client computing device. In various embodiments, the MNO server can send the indication of a SIM profile update for an LwM2M client computing device (such as an IoT device) to the LwM2M server. The indication of a SIM profile update for an LwM2M client computing device (such as an IoT device) can be sent directly from the MNO server to the LwM2M server. In this way, the MNO server can avoid communicating with an SM-DP+ server as required in the RSP specification and directly indicate to the LwM2M server that a SIM profile update for the LwM2M client computing device will occur.
[0138] In some embodiments, an instruction from the MNO server for an update of the SIM profile for an LwM2M client computing device may include one or more addresses from the MNO server from which the LwM2M client computing device can download the SIM profile package. As an example, the address may be one or more URIs, one or more URLs, etc. In this way, the address can act as a pointer to a device from which the LwM2M client computing device can download the SIM profile package. The address may be an address associated with the MNO server itself and / or an address associated with a server other than the MNO server (such as a SIM profile package server). This one or more addresses enable the LwM2M client device to retrieve the SIM profile package from the MNO server and / or another server (such as a SIM profile package server).
[0139] In box 404, the processor can generate an indication for the LwM2M client computing device of an available remote SIM provisioning object for updating the SIM profile of the LwM2M client computing device. For example, the remote SIM provisioning object could be as shown in the reference... Figure 3A and Figure 3B The remote SIM provisioning objects 312 and / or 351 are described. In some embodiments, the remote SIM provisioning object may include indications of one or more addresses from which a SIM profile package from an MNO server is available for download by an LwM2M client computing device.
[0140] In box 406, the processor may send a remote SIM provisioning object to the LwM2M client computing device. In some embodiments, sending a remote SIM provisioning object to the LwM2M client computing device may include using a secure connection (such as a DTLS connection, a TLS connection, etc.) to send the remote SIM provisioning object to the LwM2M client computing device.
[0141] Figure 5This is a process flow diagram illustrating a method 500 for supporting remote SIM profile provisioning, executable by an LwM2M client computing device according to various embodiments. (Reference) Figures 1 to 5 Method 500 can be implemented in hardware and / or software components of an LwM2M client computing device (e.g., 120a-e, 200, 302, etc.), and its operation can be controlled by one or more processors (e.g., 212, 216, 252, or 260). For ease of reference, the hardware executing method 500 is generally referred to herein as a "processor". The operation of method 500 can be performed by the LwM2M client computing device in conjunction with the execution of method 400 ( Figure 4 The operation is performed by the LwM2M server (e.g., 190, 304a).
[0142] In optional box 501, the processor can generate a remote SIM provisioning object that indicates SIM association information about LwM2M client computing devices. For example, the remote SIM provisioning object could be as shown in the reference. Figure 3A and Figure 3B The remote SIM provisioning objects 312 and / or 351 are described. As a specific example, the remote SIM provisioning objects may include, individually or in various combinations, various types of SIM association information about the LwM2M client computing device, such as supported delivery methods (e.g., push and / or pull), supported RF bands, available memory space of the SIM, SIM profile update protocols supported by the LwM2M client computing device, supported SIM types, etc.
[0143] In optional box 502, the processor may send a remote SIM provisioning object to the LwM2M server. In some embodiments, sending a remote SIM provisioning object to the LwM2M server may include using a secure connection (such as a DTLS connection, a TLS connection, etc.) to send the remote SIM provisioning object to the LwM2M server.
[0144] Boxes 501 and 502 can be optional, because there may not be any required communication between the LwM2M server and the LwM2M client computing device before the remote SIM provisioning object is received from the LwM2M server.
[0145] In box 504, the processor can receive from the LwM2M server an indication of available remote SIM provisioning objects for updating the SIM profile of the LwM2M client computing device. For example, a remote SIM provisioning object could be as described in the reference... Figure 3A and Figure 3BThe remote SIM provisioning objects 312 and / or 351 are described. In some embodiments, the remote SIM provisioning object may include indications of one or more addresses from which a SIM profile package from an MNO server is available for download by an LwM2M client computing device.
[0146] In block 506, the processor may download a SIM profile update in response to receiving a remote SIM provisioning object. In some embodiments, downloading a SIM profile update may include receiving a SIM profile packet from an LwM2M server in one or more additional remote SIM provisioning objects, and / or receiving a SIM profile packet in response to sending a request for the SIM profile packet to an address in the received remote SIM provisioning object.
[0147] Figure 6A This is a process flow diagram illustrating a method for supporting remote SIM profile provisioning, executable by an LwM2M server according to various embodiments. (Reference) Figures 1 to 6A Method 600 can be implemented in hardware and / or software components of a network element acting as an LwM2M server (e.g., 190, 304a), and its operation can be controlled by one or more processors. For ease of reference, the hardware implementing method 600 is generally referred to herein as a "processor". The operation of method 600 can be controlled by an LwM2M server in conjunction with method 400 ( Figure 4 The operation is performed in response to the action of method 400. For example, the operation of method 600 can be performed in response to block 406 of method 400. Figure 4 It is executed by sending a remote SIM provisioning object to the LwM2M client computing device.
[0148] At block 602, the processor can receive a SIM profile packet from the MNO server. In some embodiments, the MNO server can send the SIM profile packet to the LwM2M server. As a supplement to including one or more addresses from the MNO server that are available for download by the LwM2M client computing device, the SIM profile packet can be sent in an instruction from the MNO server to the LwM2M server for an update of the SIM profile for the LwM2M client computing device. Alternatively, as an alternative to including one or more addresses from the MNO server that are available for download by the LwM2M client computing device, the SIM profile packet can be sent in an instruction from the MNO server to the LwM2M server for an update of the SIM profile for the LwM2M client computing device.
[0149] In box 604, the processor can send a SIM profile packet to the LwM2M client computing device from one or more remote SIM provisioning objects. For example, the processor can send the data of the SIM profile packet as part of a profile packet element (e.g., profile packet IE 357) of one or more remote SIM provisioning objects (e.g., 351). In this way, the LwM2M server can push the SIM profile packet to the LwM2M client computing device.
[0150] Figure 6B This is a flowchart illustrating a method 650 for downloading a SIM profile update, which can be executed by an LwM2M client computing device according to some embodiments. (Reference) Figures 1 to 6B Method 600 can be implemented in hardware and / or software components of an LwM2M client computing device (e.g., 120a-e, 200, 302, etc.), and its operation can be controlled by one or more processors (e.g., 212, 216, 252, or 260). For ease of reference, the hardware performing method 650 is generally referred to herein as a "processor". The operation of method 650 can be performed by an LwM2M client computing device in conjunction with method 500 ( Figure 5 The operation of method 650 can be performed as part of the operation of box 506 in response to the operation of method 500. Figure 5 In box 504, the LwM2M server receives an indication that a remote SIM provisioning object is available for an SIM profile update for the LwM2M client computing device, and downloads the SIM profile update.
[0151] In box 652, the processor can receive a SIM profile packet from the LwM2M server within one or more remote SIM provisioning objects. For example, the processor can receive the SIM profile packet data as part of a profile packet element (e.g., profile packet IE 357) of one or more remote SIM provisioning objects (e.g., 351). In this way, the LwM2M server can push the SIM profile packet to the LwM2M client computing device.
[0152] In determination box 654, the processor can determine whether the SIM profile packet passes integrity verification. For example, the processor can determine whether the DTLS operation used to transmit the SIM profile packet verifies the received SIM profile packet to determine whether the SIM profile packet passes integrity verification.
[0153] In response to determining that the SIM profile package failed the integrity check (i.e., determination box 654 = "No"), the processor can send a remote SIM provisioning object indicating the integrity check failure to the LwM2M server in box 658. For example, the processor can send a remote SIM provisioning object (e.g., 351) that includes an indication of the integrity check failure (e.g., an update result IE 361 = "5" corresponding to the integrity check failure).
[0154] In response to determining that the SIM profile package has passed the integrity check (i.e., confirmation box 654 = "Yes"), the processor may send a remote SIM provisioning object in box 656 indicating that the SIM profile package is in a downloaded state. For example, the processor may send a remote SIM provisioning object (e.g., 351) that includes an indication that the integrity check has been successfully downloaded (e.g., update result IE 361 = "1" corresponds to success) and / or an indication that the status of the SIM profile update has been downloaded (e.g., status IE 360 = "2" corresponds to "Downloaded").
[0155] Figure 7A This is a process flow diagram illustrating a method 700 for supporting remote SIM profile provisioning, which can be executed by an LwM2M server according to some embodiments. (Reference) Figures 1 to 7A Method 700 can be implemented in hardware and / or software components of a network element acting as an LwM2M server (e.g., 190, 304a), and its operation can be controlled by one or more processors. For ease of reference, the hardware executing method 700 is generally referred to herein as a "processor". The operation of method 700 can be controlled by an LwM2M server in conjunction with method 400 ( Figure 4 The operation of method 700 can be performed in response to block 402 of method 400. For example, the operation of method 700 can be performed in response to block 402 of method 400. Figure 4 The instruction to update the SIM profile is received in the box and executed before the remote SIM provisioning object is generated in box 404.
[0156] In box 702, the processor can determine the SIM profile update protocol supported by the LwM2M client computing device. For example, the LwM2M client computing device can indicate the SIM profile update protocol supported by the LwM2M client computing device in a remote SIM provisioning object (e.g., 312 and / or 351), and the LwM2M server can determine the SIM profile update protocol supported by the LwM2M client computing device as the SIM profile update protocol indicated in the remote SIM provisioning object (e.g., the SIM profile update protocol indicated in Profile Update Protocol Support IE 364).
[0157] In box 704, the processor may select, at least in part, an address from the MNO server that the SIM profile package is available for download by the LwM2M client computing device based on a SIM profile update protocol supported by the LwM2M client computing device. The LwM2M server may select one of one or more addresses, at least in part, based on a SIM profile update protocol supported by the LwM2M client computing device. In this way, the LwM2M server can ensure that the address (such as a URI) selected for the LwM2M client computing device has a format supported by that LwM2M client computing device. As a specific example, in a scenario where the LwM2M client computing device sends an instruction to the LwM2M server that a remote SIM provisioning object only supports CoAP, the LwM2M server can ensure that a CoAP URI, instead of an HTTP URI, is selected for sending to the LwM2M client computing device, because the LwM2M client computing device may not support HTTP.
[0158] Figure 7B This is a flowchart illustrating a method 750 for downloading a SIM profile update, which can be executed by an LwM2M client computing device according to some embodiments. (Reference) Figures 1 to 7B Method 750 can be implemented in hardware and / or software components of an LwM2M client computing device (e.g., 120a-e, 200, 302, etc.), and its operation can be controlled by one or more processors (e.g., 212, 216, 252, or 260). For ease of reference, the hardware executing method 750 is generally referred to herein as a "processor". The operation of method 750 can be performed by an LwM2M client computing device in conjunction with method 500 ( Figure 5 The operation of method 750 can be performed as part of the operation of box 506 in response to the operation of method 500. Figure 5 In box 504, the LwM2M server receives an indication that a remote SIM provisioning object is available for an SIM profile update for the LwM2M client computing device, and downloads the SIM profile update.
[0159] In box 752, the processor may send a request for the SIM profile to an address where the SIM profile is available for download. For example, the processor may send a CoAP request (e.g., coap) or an HTTP request (e.g., GET) to a URI where the SIM profile is available for download.
[0160] In box 754, the processor may receive the SIM profile packet in response to a request for the SIM profile packet being sent to that address. For example, the SIM profile packet may be received in a CoAP response or an HTTP response from a server associated with an address where the SIM profile packet is available for download.
[0161] In boxes 654, 656, and 658, the processor can perform operations as described in the reference. Figure 6B The described method 650 is a similar operation to the numbered boxes.
[0162] Figure 8 This is a process flow diagram illustrating a method 800 for supporting remote SIM profile provisioning, which can be executed by an LwM2M server according to some embodiments. (Reference) Figures 1 to 8 Method 800 can be implemented in hardware and / or software components of a network element acting as an LwM2M server (e.g., 190, 304a), and its operation can be controlled by one or more processors. For ease of reference, the hardware executing method 800 is generally referred to herein as a "processor". The operation of method 800 can be controlled by an LwM2M server in conjunction with method 400 ( Figure 4 ) and / or 600 ( Figure 6A The operation of method 800 can be executed in response to the operation of method 400. For example, the operation of method 800 can be executed in response to the operation of method 400. Figure 4 In box 406, a remote SIM provisioning object is sent to the LwM2M client computing device, or in response to method 600 ( Figure 6A In box 604, the SIM profile packet is sent to the LwM2M client computing device from one or more remote SIM provisioning objects.
[0163] In determination box 802, the processor can determine whether it has received an indication from the LwM2M client computing device that the remote SIM provisioning object has successfully downloaded the SIM profile package.
[0164] In response to determining that no indication has been received from the LwM2M client computing device that the remote SIM provisioning object has successfully downloaded the SIM profile package (i.e., determination box 802 = "No"), the processor may wait for the remote SIM provisioning object and determine in determination box 802 whether an indication has been received from the LwM2M client computing device that the remote SIM provisioning object has successfully downloaded the SIM profile package.
[0165] In response to determining that an indication has been received from the LwM2M client computing device that the LwM2M client computing device has successfully downloaded the SIM profile package, a remote SIM provisioning object can be generated for the LwM2M client computing device in box 804, including a profile update trigger indication. For example, the processor can generate a remote SIM provisioning object (e.g., 351) that includes a profile update IE (e.g., 359), which includes executable code or code snippets that can be executed by the LwM2M client computing device to update the SIM profile using the previously successfully downloaded SIM profile package.
[0166] In block 806, the processor may send a remote SIM provisioning object to the LwM2M client computing device. In some embodiments, sending a remote SIM provisioning object to the LwM2M client computing device may include using a secure connection (such as a DTLS connection, a TLS connection, etc.) to send the remote SIM provisioning object to the LwM2M client computing device.
[0167] Figure 9 This is a process flow diagram illustrating a method 900 for supporting remote SIM profile provisioning, executable by an LwM2M client computing device according to some embodiments. Reference Figures 1 to 9 Method 900 can be implemented in hardware and / or software components of an LwM2M client computing device (e.g., 120a-e, 200, 302, etc.), and its operation can be controlled by one or more processors (e.g., 212, 216, 252, or 260). For ease of reference, the hardware executing method 900 is generally referred to herein as a "processor". The operation of method 900 can be performed by an LwM2M client computing device in conjunction with method 500 ( Figure 5 Method 650 Figure 6B ) and / or method 750 ( Figure 7B The operation is performed in response to the action of method 500. For example, the operation of method 900 can be performed in response to block 506 of method 500. Figure 5 The operation of downloading SIM profile updates and / or responding to box 656 in method 650 is as follows: Figure 6B ) or method 750 ( Figure 7B This is performed by sending an instruction to a remote SIM provisioning object that the SIM profile package is in a downloaded state.
[0168] In box 902, the processor can receive a remote SIM provisioning object from the LwM2M server, including a profile update trigger indication. For example, the remote SIM provisioning object (e.g., 351) may include a profile update IE (e.g., 359) that includes executable code or code snippets that can be executed by the LwM2M client computing device to update the SIM profile using a previously successfully downloaded SIM profile package.
[0169] In box 904, the processor may initiate a SIM profile update for the LwM2M client computing device using a SIM profile packet in response to receiving a remote SIM provisioning object. For example, the processor may execute executable code or code snippets to attempt to update the SIM profile.
[0170] In confirmation box 906, the processor can determine whether the SIM profile has been successfully updated.
[0171] In response to the determination that the update did not complete successfully (i.e., confirmation box 906 = "No"), the processor can wait for successful completion and determine in confirmation box 906 whether the SIM profile was successfully updated.
[0172] In response to confirming successful update completion (i.e., confirming box 906 = "Yes"), the processor may send a remote SIM provisioning object indicating a new current service provider for the LwM2M client computing device to the LwM2M server in box 908. For example, the remote SIM provisioning object may be objects 312, 351 indicating a changed service provider for the LwM2M client computing device.
[0173] Figure 10A This is a process flow diagram illustrating a method 1000 for supporting remote SIM profile provisioning, which can be executed by an LwM2M server according to some embodiments. (Reference) Figures 1 to 10A Method 1000 can be implemented in hardware and / or software components that act as a network element (e.g., 190, 304a) of an LwM2M server, and its operation can be controlled by one or more processors. For ease of reference, the hardware executing method 1000 is generally referred to herein as a "processor". The operation of method 1000 can be controlled by an LwM2M server in conjunction with method 400 ( Figure 4 The operation of method 1000 can be performed in response to receiving an instruction from the MNO server in box 402 for an update of the SIM profile for the LwM2M client computing device and in box 404 of method 400. Figure 4 This is executed before generating the remote SIM provisioning object.
[0174] In determination box 1002, the processor can determine whether the LwM2M client computing device supports the RF band associated with the SIM profile update for that LwM2M client computing device. For example, the processor can compare the RF band associated with the SIM profile update with a list of supported LTE bands, a list of supported EGPRS bands, a list of supported TD-SCDMA bands, a list of supported WCDMA bands, a list of supported WiMax bands, a list of supported NB-IoT bands, and / or a list of supported 5G bands to determine whether the RF band associated with the SIM profile update is in any of these lists. The presence of the RF band associated with the SIM profile update in the supported lists indicates that the LwM2M client computing device supports the RF band associated with the SIM profile update for that LwM2M client computing device.
[0175] In response to determining that the LwM2M client computing device does not support the RF band associated with the SIM profile update for that LwM2M client computing device (i.e., determination box 1002 = "No"), the processor may send an indication of a SIM profile update error to the MNO server in box 1004.
[0176] In response to determining that the LwM2M client computing device does indeed support the RF band associated with the SIM profile update for that LwM2M client computing device (i.e., determining box 1002 = "Yes"), the processor can proceed to box 404 of method 400. Figure 4 Generate a remote SIM provisioning object in ).
[0177] Figure 10B This is a process flow diagram illustrating a method 1020 for supporting remote SIM profile provisioning, which can be executed by an LwM2M server according to some embodiments. (See reference...) Figures 1 to 10B Method 1020 can be implemented in hardware and / or software components that act as a network element (e.g., 190, 304a) of an LwM2M server, and its operation can be controlled by one or more processors. For ease of reference, the hardware executing method 1020 is generally referred to herein as a "processor". The operation of method 1020 can be controlled by an LwM2M server in conjunction with method 400 ( Figure 4 The operation can be performed in response to receiving an instruction from the MNO server in box 402 for an update of the SIM profile for the LwM2M client computing device and in box 404 of method 400. Figure 4 This is executed before generating the remote SIM provisioning object.
[0178] In determination box 1022, the processor may determine whether the free memory space of the SIM of the LwM2M client computing device is equal to or greater than the memory requirement for the SIM profile update of the LwM2M client computing device. For example, the processor may compare the size of the SIM profile update with the free memory space of the SIM of the LwM2M client computing device to determine whether the free memory space of the SIM of the LwM2M client computing device is equal to or greater than the memory requirement for the SIM profile update of the LwM2M client computing device. The comparison may be performed in any manner, such as by subtracting the free memory space value from the size value of the SIM profile, such that a zero or negative result indicates that the free memory space of the SIM of the LwM2M client computing device is equal to or greater than the memory requirement for the SIM profile update of the LwM2M client computing device.
[0179] In response to determining that the free memory space of the SIM of the LwM2M client computing device is less than the memory requirement for updating the SIM profile of the LwM2M client computing device (i.e., determining box 1022 = "No"), the processor may send an indication of a SIM profile update error to the MNO server in box 1004.
[0180] In response to determining that the free memory space of the SIM of the LwM2M client computing device is equal to or greater than the memory requirement for the SIM profile update for the LwM2M client computing device (i.e., determining box 1022 = "Yes"), the processor can proceed to box 404 of method 400. Figure 4 Generate a remote SIM provisioning object in ).
[0181] Figure 11 This is a state diagram illustrating example operations for supporting remote SIM profile provisioning, which can be performed by an LwM2M client computing device (e.g., 120a-e, 200, 302) according to various embodiments. Reference Figures 1 to 11 , Figure 11 The states and operations shown can be method 400 ( Figure 4 ), 500 Figure 5 ), 600 Figure 6A ), 650 Figure 6B ), 700 Figure 7A ), 750 Figure 7B ), 800 Figure 8 ), 900 Figure 9 ), 1000 Figure 10A ) and / or 1020 ( Figure 10B Example implementation of one or more operations in ).
[0182] Initially, the LwM2M client computing device can be in an idle state 1110 regarding SIM profile updates. The initial value of the update result for the LwM2M client computing device can be zero, and the value of the idle state can also be zero. In operation 1101, the LwM2M client computing device can receive a remote SIM provisioning object (e.g., 312, 351) from an LwM2M server (e.g., 190, 304a). The remote SIM provisioning object can indicate that a SIM profile update is available for the LwM2M client computing device.
[0183] In response to receiving a remote SIM provisioning object (e.g., 312, 351) from an LwM2M server (e.g., 190, 304a) in operation 1101, the LwM2M client calculates that it can transition to the Downloading state 1112 and attempt to download and write the SIM profile package. Downloading can be performed by pulling the SIM profile package using the profile URI and / or by pushing the SIM profile package to one or more remote SIM provisioning objects. The value of the Downloading state can be 1. The value of the Update Result can be changed based on the download result. The initial value can be zero. Download failure can cause the Update Result to be set to values two through nine indicating the reason for failure, and in operation 1102, the state can return to the Idle state 1110 to allow for a retry of the download. Download success can cause the Update Result to be set to the success value 1, and in operation 1103, the state can transition to the Downloaded state 1114, which can be set to the value two associated with the Downloaded state 1114. Upon entering the Downloaded state 1114, the Update Result value can return to zero.
[0184] In operation 1104, the LwM2M client computing device can receive a remote SIM provisioning object (e.g., 312, 351) including an update trigger from an LwM2M server (e.g., 190, 304a). Receiving an update trigger can cause the state to transition to the updating state 1116, which can be set to the value three associated with the updating state 1116. Upon entering the downloaded state 1114, the update result value can return to zero. An update failure can cause the update result to be set to values two through nine indicating the reason for the failure, and in operation 1106, the state can return to the idle state 1110 to allow for a retry of the download. An update success can cause the update result to be set to the value one indicating success, and in operation 1105, the state can return to the idle state 1110. Upon entering the idle state 1110 in the case of a successful update, the update result can be shifted to zero.
[0185] Various embodiments (including but not limited to the above references) Figures 1 to 11The embodiments discussed can be implemented on various IoT devices (especially LwM2M client computing devices), and examples in the form of circuit boards in the device are shown in Figure 12 As shown in the image. (Reference) Figures 1 to 12 The IoT device 1200 (e.g., 102a-e, 200, 302) may include a first SOC 202 (e.g., SOC-CPU) coupled to a second SOC 204 (e.g., a 5G-capable SOC) and a temperature sensor 205. The first SOC 202 and the second SOC 204 may be coupled to an internal memory 1206. Furthermore, the IoT device 1200 may include or be coupled to an antenna 1204 for transmitting and receiving wireless signals from a wireless transceiver 266 or within the second SOC 204. The IoT device 1200 may include a SIM 268. The antenna 1204 and the wireless transceiver 266, SIM 268, and / or the second SOC 204 may support communication using various RATs (including NB-IoT, CIoT, GSM and / or VoLTE, 5G, WiMAX, CDMA-2000, LTE, EGPRS, etc.).
[0186] The IoT device 1200 may also include a voice codec (CODEC) circuit 1210 that digitizes sound received from a microphone into data packets suitable for wireless transmission and decodes the received sound data packets to generate an analog signal that is provided to a speaker to generate sound supporting voice or VoLTE calls. Furthermore, one or more of the processor in the first SOC 202 and the second SOC 204, the wireless transceiver 266, and the CODEC 1210 may include digital signal processor (DSP) circuitry (not shown separately).
[0187] Some IoT devices may include an internal power source, such as a battery 1212 configured to power the SOC and transceiver. Such IoT devices may include a power management component 1216 for managing the charging of the battery 1212.
[0188] Various embodiments (including but not limited to the above references) Figures 1 to 11 The embodiments discussed can also be implemented in any of a variety of commercially available server devices (such as...). Figure 13 Implemented on server 700 (e.g., servers 190, 191, 304) shown in the diagram. See reference. Figures 1 to 13Such a server 1300 typically includes a processor 1301 coupled to volatile memory 1302 and mass non-volatile memory (such as a disk drive 1303). The server 1300 may also include a floppy disk drive, compact optical disc (CD), or digital versatile optical disc (DVD) drive 1306 coupled to the processor 1301. The server 1300 may also include one or more network transceivers 1304 (such as network access ports) coupled to the processor 1301 for establishing network interface connections with a communication network 1307 (such as a local area network, the Internet, public switched telephone network, and / or cellular network (e.g., CDMA, TDMA, GSM, PCS, 3G, 4G, 5G, LTE, or any other type of cellular network) coupled to other public system computers and servers).
[0189] Figure 14 This is a component block diagram of a wireless device 1400 applicable to various embodiments. (See reference...) Figures 1 to 14 Various embodiments can be implemented on various wireless devices 1400 (e.g., wireless devices 120a-120e, 200, 302), examples of which are shown in Figure 14 The wireless device 1400 is illustrated as a smartphone. It may include a first SOC 202 (e.g., an SOC-CPU) coupled to a second SOC 204 (e.g., a 5G-capable SOC). The first SOC 202 and the second SOC 204 may be coupled to internal memory 1416, a display 1412, and a speaker 1414. Furthermore, the wireless device 1400 may include an antenna 1404 for transmitting and receiving electromagnetic radiation, which may be connected to a wireless transceiver 266 coupled to one or more processors in the first SOC 202 and / or the second SOC 204. The wireless device 1400 may include a SIM 268. Antenna 1404 and wireless transceiver 266, SIM 268 and / or second SOC 204 can support communication using various RATs (including NB-IoT, CIoT, GSM and / or VoLTE, 5G, WiMAX, CDMA-2000, LTE, EGPRS, etc.). Wireless device 1400 may also include menu selection buttons or joystick switches 1420 for receiving user input.
[0190] The wireless device 1400 also includes a voice codec (CODEC) circuit 1410, which digitizes sound received from the microphone into data packets suitable for wireless transmission and decodes the received voice data packets to generate an analog signal provided to the speaker to produce sound. Furthermore, one or more of the processor in the first SOC 202 and the second SOC 204, the wireless transceiver 266, and the CODEC 1410 may include digital signal processor (DSP) circuitry (not shown separately).
[0191] The processors of IoT device 1200, server 1300, and wireless device 1400 can be any programmable microprocessor, microcomputer, or one or more multiprocessor chips that can be configured via software instructions (applications) to perform various functions, including those described in the various embodiments below. In some mobile devices, multiple processors may be provided, such as one processor within SOC 204 dedicated to wireless communication functions and another within SOC 202 dedicated to running other applications. Software applications can be stored in memory and subsequently accessed and loaded into the processor. The processor may include internal memory sufficient to store application software instructions.
[0192] As used herein, the terms “component,” “module,” “system,” etc., are intended to include computer-related entities such as, but not limited to, hardware, firmware, combinations of hardware and software, software, or software in execution configured to perform a particular operation or function. For example, a component can be, but is not limited to, a program running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer. By way of illustration, both an application running on an IoT device and the IoT device itself can be referred to as a component. One or more components may reside within a program and / or a thread of execution, and components may be localized on a single processor or core and / or distributed across two or more processors or cores. Furthermore, these components may be executed from various non-transitory computer-readable media on which various instructions and / or data structures are stored. Components may communicate via local and / or remote programs, function or procedure calls, electronic signals, data packets, memory read / write, and other known networks, computers, processors, and / or program-related communication methods.
[0193] Multiple different cellular and mobile communication services and standards are available and envisioned for the future, all of which are feasible and benefit from various implementations. These services and standards include, for example, the 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE) systems, 3rd Generation Wireless (3G), 4th Generation Wireless (4G), 5th Generation Wireless (5G), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), 3GSM, General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA) systems (e.g., cdmaOne, CDMA1020TM), Enhanced Data Rate GSM Evolution (EDGE), Advanced Mobile Phone Systems (AMPS), Digital AMPS (IS-136 / TDMA), Evolved Data Optimized (EV-DO), Digital Enhanced Powerless Telecommunications (DECT), Global Interoperability Microwave Access (WiMAX), Wireless Local Area Networks (WLAN), Wi-Fi Protected Access I and II (WPA, WPA2), and Integrated Digital Enhanced Networks (iden). Each of these technologies relates to the transmission and reception of, for example, voice, data, signal transmission, and / or content messages. It should be understood that any reference to terminology and / or technical details relating to individual telecommunications standards or technologies is for illustrative purposes only and is not intended to limit the scope of the claims to a particular communication system or technology, unless specifically stated in the language of the claims.
[0194] The various embodiments shown and described are provided merely as examples illustrating the various features of the claims. However, the features shown and described with respect to any given embodiment are not necessarily limited to the associated embodiment and can be used or combined with other embodiments shown and described. Furthermore, the claims are not intended to be limited to any one of the example embodiments. For example, one or more of the operations of methods 400, 500, 600, 650, 700, 750, 800, 900, 1000 and / or 1020 may replace or be combined with one or more operations of methods 400, 500, 600, 650, 700, 750, 800, 900, 1000 and / or 1020.
[0195] The following paragraphs describe implementation examples. Although some of the following implementation examples are described as example methods, further example implementations may include: example methods implemented by an LwM2M client computing device and / or an LwM2M server, as discussed in the following paragraphs, wherein the LwM2M client computing device includes a processor configured with processor-executable instructions to perform the operations of the methods in the following implementation examples, and the LwM2M server includes a processor configured with processor-executable instructions to perform the operations of the methods in the following implementation examples; example methods implemented by an LwM2M client computing device and / or an LwM2M server, as discussed in the following paragraphs, wherein the LwM2M client computing device... The LwM2M server includes components for performing the methods of the following implementation examples; and the example methods discussed in the following paragraphs can be implemented as a non-transitory processor-readable storage medium having processor-executable instructions stored thereon, the processor-executable instructions being configured to cause the processor of an LwM2M client computing device to perform the operations of the methods of the following implementation examples, and / or a non-transitory processor-readable storage medium having processor-executable instructions stored thereon, the processor-executable instructions being configured to cause the processor of an LwM2M server to perform the operations of the methods of the following implementation examples.
[0196] Example 1. A method for supporting remote subscriber identity module (SIM) profile provisioning, comprising: receiving, by a processor of a lightweight machine-to-machine (LwM2M) server, an indication of a SIM profile update for an LwM2M client computing device from a mobile network operator server; generating, by the processor of the LwM2M server, a remote SIM provisioning object indicating the availability of a SIM profile update for the LwM2M client computing device; and sending the remote SIM provisioning object to the LwM2M client computing device by the processor of the LwM2M server.
[0197] Example 2. The method according to Example 1 further includes: receiving a SIM profile packet from a mobile network operator server by a processor of the LwM2M server; and sending the SIM profile packet to an LwM2M client computing device by the processor of the LwM2M server in one or more additional remote SIM provisioning objects.
[0198] Example 3. According to the method of Example 1, wherein: the instruction for SIM profile update for LwM2M client computing device from the mobile network operator server includes one or more addresses from the mobile network operator server that are available for download by the LwM2M client computing device; and the remote SIM provisioning object includes one of the one or more addresses.
[0199] Example 4. The method according to Example 3 further includes: determining a SIM profile update protocol supported by the LwM2M client computing device by the processor of the LwM2M server; and selecting one of one or more addresses by the processor of the LwM2M server based at least in part on the SIM profile update protocol supported by the LwM2M client computing device.
[0200] Example 5. The method according to any one of Examples 1 to 4 further includes performing the following operations before generating a remote SIM provisioning object: determining, by the processor of the LwM2M server, whether the LwM2M client computing device supports the radio frequency (RF) band associated with the SIM profile update for the LwM2M client computing device; and sending an indication of a SIM profile update error to a mobile network operator server by the processor of the LwM2M server in response to determining that the LwM2M client computing device does not support the RF band associated with the SIM profile update for the LwM2M client computing device, wherein generating a remote SIM provisioning object includes generating a remote SIM provisioning object by the processor of the LwM2M server in response to determining that the LwM2M client computing device does indeed support the RF band associated with the SIM profile update for the LwM2M client computing device.
[0201] Example 6. The method according to any one of Examples 1 to 5 further includes performing the following operations before generating the remote SIM provisioning object: determining, by the processor of the LwM2M server, whether the free memory space of the SIM of the LwM2M client computing device is equal to or greater than the memory requirement for the SIM profile update of the LwM2M client computing device; and sending an indication of a SIM profile update error to the mobile network operator server by the processor of the LwM2M server in response to determining that the free memory space of the SIM is less than the memory requirement for the SIM profile update of the LwM2M client computing device, wherein generating the remote SIM provisioning object includes generating the remote SIM provisioning object by the processor of the LwM2M server in response to determining that the free memory space of the SIM is equal to or greater than the memory requirement for the SIM profile update of the LwM2M client computing device.
[0202] Example 7. The method according to any one of Examples 1 to 6, wherein sending a remote SIM provisioning object to an LwM2M client computing device includes sending the remote SIM provisioning object to the LwM2M client computing device by a processor of the LwM2M server using a secure connection.
[0203] Example 8. The method according to any one of Examples 1 to 7, further comprising: a processor of the LwM2M server determining whether a second remote SIM provisioning object is received from an LwM2M client computing device indicating that the LwM2M client computing device has successfully downloaded a SIM profile package; the processor of the LwM2M server generating a third remote SIM provisioning object for the LwM2M client computing device including a profile update trigger indication in response to determining that the second remote SIM provisioning object has been received from the LwM2M client computing device; and the processor of the LwM2M server sending the third remote SIM provisioning object to the LwM2M client computing device.
[0204] Example 9. A method for supporting remote subscriber identity module (SIM) profile provisioning, comprising: receiving from an LwM2M server a remote SIM provisioning object indicating the availability of a SIM profile update for the LwM2M client computing device by a processor of a lightweight machine-to-machine (LwM2M) client computing device; and downloading the SIM profile update by the processor of the LwM2M client computing device in response to receiving the remote SIM provisioning object.
[0205] Example 10. The method according to Example 9, wherein downloading a SIM profile update includes: receiving a SIM profile packet from an LwM2M server by a processor of an LwM2M client computing device in one or more additional remote SIM provisioning objects; determining by the processor of the LwM2M client computing device whether the SIM profile packet passes an integrity check; sending a remote SIM provisioning object indicating integrity check failure to the LwM2M server by the processor of the LwM2M client computing device in response to determining that the SIM profile packet fails an integrity check; and sending a remote SIM provisioning object indicating that the SIM profile packet is in a downloaded state to the LwM2M server by the processor of the LwM2M client computing device in response to determining that the SIM profile packet passes an integrity check.
[0206] Example 11. The method according to Example 9, wherein: the remote SIM profile object includes an address where a SIM profile package is available for download; and downloading a SIM profile update includes: a processor of the LwM2M client computing device sending a request for the SIM profile package to the address; a processor of the LwM2M client computing device receiving the SIM profile package in response to sending the request for the SIM profile package to the address; a processor of the LwM2M client computing device determining whether the SIM profile package passes an integrity check; a processor of the LwM2M client computing device sending a remote SIM provisioning object indicating integrity check failure to the LwM2M server in response to determining that the SIM profile package fails integrity check; and a processor of the LwM2M client computing device sending a remote SIM provisioning object indicating that the SIM profile package is in a downloaded state to the LwM2M server in response to determining that the SIM profile package passes integrity check.
[0207] Example 12. The method described in Example 11, wherein the address is a Uniform Resource Identifier (URI) associated with a server other than the LwM2M server.
[0208] Example 13. The method according to any one of Examples 9 to 12, wherein receiving a remote SIM provisioning object includes the processor of the LwM2M client computing device using a secure connection to receive a remote SIM provisioning object from an LwM2M server.
[0209] Example 14. The method according to any one of Examples 9 to 13, further comprising: receiving a SIM profile packet by a processor of the LwM2M client computing device; receiving a second remote SIM provisioning object including a profile update triggering indication from an LwM2M server by the processor of the LwM2M client computing device; and initiating a SIM profile update for the LwM2M client computing device using the SIM profile packet in response to receiving the second remote SIM provisioning object.
[0210] Example 15. The method according to Example 14 further includes, in response to a successful SIM profile update, the following operation is performed: the processor of the LwM2M client computing device sends an instruction to the LwM2M server for a third remote SIM provisioning object of the new current service provider for the LwM2M client computing device.
[0211] Example 16. The method according to any one of Examples 1 to 15, wherein the LwM2M client computing device is an Internet of Things (IoT) device.
[0212] The above method descriptions and process flow diagrams are provided as illustrative examples only and are not intended to require or imply that the operations of the various embodiments must be performed in the provided order. As those skilled in the art will understand, the order of operations in the foregoing embodiments can be performed in any order. Words such as “afterward,” “then,” and “following” are not intended to limit the order of operations; these words are used to guide the reader through the description of the method. Furthermore, any reference to singular claim elements (e.g., references using the articles “a,” “some,” or “the”) should not be construed as limiting that element to the singular.
[0213] The various illustrative logic blocks, modules, components, circuits, and algorithmic operations described in conjunction with the embodiments disclosed herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this hardware-software interchangeability, the various illustrative components, blocks, modules, circuits, and operations described above are generalized in their functional form. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in different ways for each specific application, but such implementation decisions should not be construed as causing a departure from the scope of the claims.
[0214] The hardware used to implement the various illustrative logics, logic blocks, modules, and circuits described in conjunction with the embodiments disclosed herein may be implemented or executed using a general-purpose processor, digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, designed to perform the functions described herein. The general-purpose processor may be a microprocessor, but alternatively, the processor may be any general processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of receiver intelligent objects, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors cooperating with a DSP core, or any other such configuration. Optionally, some operations or methods may be performed by a circuit system dedicated to a given function.
[0215] In one or more embodiments, the described functionality can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality can be stored as one or more instructions or code on a non-transitory computer-readable storage medium or a non-transitory processor-readable storage medium. The operation of the methods or algorithms disclosed herein can be implemented in a processor-executable software module or processor-executable instructions, which can reside on a non-transitory computer-readable or processor-readable storage medium. A non-transitory computer-readable or processor-readable storage medium can be any storage medium accessible to a computer or processor. By way of example and not limitation, such non-transitory computer-readable or processor-readable storage media can include RAM, ROM, EEPROM, flash memory, CD-ROM or other optical disc storage, disk storage or other magnetic storage smart objects, or any other medium that can be used to store desired program code in the form of instructions or data structures and is accessible to a computer. As used herein, disks and discs include compact optical discs (CDs), laser discs, optical discs, digital versatile optical discs (DVDs), floppy disks, and Blu-ray discs, wherein disks typically reproduce data magnetically while discs reproduce data optically using lasers. The above combinations are also included within the scope of non-transitory computer-readable and processor-readable media. Furthermore, the operation of a method or algorithm may reside as a piece of code and / or instruction, or any combination or set of code and / or instructions, on a non-transitory processor-readable and / or computer-readable storage medium that can be incorporated into a computer program product.
[0216] The prior description of the disclosed embodiments is intended to enable any person skilled in the art to make or use the claims. Various modifications to these embodiments will be apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments without departing from the scope of the claims. Thus, this disclosure is not intended to be limited to the embodiments shown herein, but should be accorded the broadest scope consistent with the appended claims and the principles and novel features disclosed herein.
Claims
1. A method for supporting the provision of a remote subscriber identity module (SIM) profile, comprising: The processor of the Lightweight Machine-to-Machine (LwM2M) server receives instructions from the mobile network operator's server for SIM profile updates for LwM2M client computing devices. The processor of the LwM2M server generates a remote SIM provisioning object for the LwM2M client computing device, indicating that the SIM profile update is available for the LwM2M client computing device and indicating the SIM profile update protocol supported by the LwM2M client computing device; The processor of the LwM2M server selects an address from which the SIM profile package can be downloaded based on the SIM profile update protocol supported by the LwM2M client computing device; as well as The processor of the LwM2M server sends the remote SIM provisioning object to the LwM2M client computing device.
2. The method according to claim 1, further comprising: The processor of the LwM2M server receives the SIM profile packet from the mobile network operator's server; as well as The processor of the LwM2M server sends the SIM profile packet to the LwM2M client computing device in one or more additional remote SIM provisioning objects.
3. The method according to claim 1, wherein: The instruction from the mobile network operator's server to update the SIM profile for the LwM2M client computing device includes one or more addresses at which the SIM profile packet from the mobile network operator's server can be downloaded by the LwM2M client computing device; and The remote SIM supply object includes one of the one or more addresses.
4. The method of claim 1, further comprising performing the following operations before generating the remote SIM provisioning object: The processor of the LwM2M server determines whether the LwM2M client computing device supports the radio frequency (RF) band associated with the SIM profile update for the LwM2M client computing device; and The processor of the LwM2M server, in response to determining that the LwM2M client computing device does not support the RF band associated with the SIM profile update for the LwM2M client computing device, sends an indication of a SIM profile update error to the mobile network operator server. in, Generating the remote SIM provisioning object includes the processor of the LwM2M server generating the remote SIM provisioning object in response to determining that the LwM2M client computing device does indeed support the RF band associated with the SIM profile update for the LwM2M client computing device.
5. The method of claim 1, further comprising performing the following operations before generating the remote SIM provisioning object: The processor of the LwM2M server determines whether the free memory space of the SIM of the LwM2M client computing device is equal to or greater than the memory requirement for updating the SIM profile of the LwM2M client computing device; and The processor of the LwM2M server, in response to determining that the free memory space of the SIM is less than the memory requirement for updating the SIM profile for the LwM2M client computing device, sends an indication of a SIM profile update error to the mobile network operator server. in, Generating the remote SIM provisioning object includes the LwM2M server's processor generating the remote SIM provisioning object in response to determining that the free memory space of the SIM is equal to or greater than the memory requirement of the SIM profile update for the LwM2M client computing device.
6. The method according to claim 1, wherein, Sending the remote SIM provisioning object to the LwM2M client computing device includes the processor of the LwM2M server using a secure connection to send the remote SIM provisioning object to the LwM2M client computing device.
7. The method according to claim 1, further comprising: The processor of the LwM2M server determines whether it has received an indication from the LwM2M client computing device that the LwM2M client computing device has successfully downloaded the second remote SIM provisioning object of the SIM profile package; In response to determining that a second remote SIM provisioning object has been received from the LwM2M client computing device, the processor of the LwM2M server generates a third remote SIM provisioning object for the LwM2M client computing device, including a profile update trigger indication. as well as The processor of the LwM2M server sends the third remote SIM supply object to the LwM2M client computing device.
8. A method for supporting the provision of a remote subscriber identity module (SIM) profile, comprising: The processor of a Lightweight Machine-to-Machine (LwM2M) client computing device receives from an LwM2M server a remote SIM provisioning object indicating that a SIM profile update is available for the LwM2M client computing device and indicating a SIM profile update protocol supported by the LwM2M client computing device. The remote SIM provisioning object includes an address selected based on the SIM profile update protocol supported by the LwM2M client computing device, at which the SIM profile packet can be downloaded. as well as The processor of the LwM2M client computing device downloads the SIM profile update in response to receiving the remote SIM provisioning object. Downloading the SIM profile update includes: The processor of the LwM2M client computing device sends a request for the SIM profile packet to the address; The processor of the LwM2M client computing device receives the SIM profile packet in response to the request to send the SIM profile packet to the address.
9. The method according to claim 8, wherein, Downloading the SIM profile update includes: The processor of the LwM2M client computing device receives a SIM profile packet from one or more additional remote SIM provisioning objects from the LwM2M server; The processor of the LwM2M client computing device determines whether the SIM profile packet passes the integrity check. The processor of the LwM2M client computing device, in response to determining that the SIM profile packet has failed the integrity check, sends a remote SIM provisioning object indicating the integrity check failure to the LwM2M server; and In response to determining that the SIM profile has passed the integrity check, the processor of the LwM2M client computing device sends a remote SIM provisioning object to the LwM2M server indicating that the SIM profile is in a downloaded state.
10. The method according to claim 8, wherein: Downloading the SIM profile update also includes: The processor of the LwM2M client computing device determines whether the SIM profile packet passes the integrity check. The processor of the LwM2M client computing device, in response to determining that the SIM profile packet has failed the integrity check, sends a remote SIM provisioning object indicating the integrity check failure to the LwM2M server; and In response to determining that the SIM profile has passed the integrity check, the processor of the LwM2M client computing device sends a remote SIM provisioning object to the LwM2M server indicating that the SIM profile is in a downloaded state.
11. The method according to claim 8, wherein, The address is a Uniform Resource Identifier (URI) associated with a server other than the LwM2M server.
12. The method according to claim 8, wherein, Receiving the remote SIM provisioning object includes the processor of the LwM2M client computing device using a secure connection to receive the remote SIM provisioning object from the LwM2M server.
13. The method of claim 8, further comprising: The processor of the LwM2M client computing device receives the SIM profile packet; The processor of the LwM2M client computing device receives a second remote SIM provisioning object from the LwM2M server, including a profile update trigger indication; as well as The processor of the LwM2M client computing device initiates a SIM profile update for the LwM2M client computing device in response to receiving the second remote SIM provisioning object, using the SIM profile packet.
14. The method of claim 13, further comprising: In response to the successful update of the SIM profile, The processor of the LwM2M client computing device sends a third remote SIM provisioning object to the LwM2M server, the third remote SIM provisioning object indicating the new current service provider of the LwM2M client computing device.
15. The method according to claim 8, wherein, The LwM2M client computing device is an Internet of Things (IoT) device.
16. A lightweight machine-to-machine (LwM2M) server, comprising: The processor is configured with processor-executable instructions to: Receive instructions from the mobile network operator's server regarding updates to the Subscriber Identity Module (SIM) profile for LwM2M client computing devices; Generate a remote SIM provisioning object for the LwM2M client computing device that indicates the availability of the SIM profile update for the LwM2M client computing device and that the SIM profile update protocol supported by the LwM2M client computing device is available. The address for downloading the SIM profile package is selected based on the SIM profile update protocol supported by the LwM2M client computing device. as well as Send the remote SIM supply object to the LwM2M client computing device.
17. The LwM2M server according to claim 16, wherein, The processor is also configured with processor-executable instructions to: Receive SIM profile packet from the mobile network operator's server; as well as The SIM profile package is sent to the LwM2M client computing device from one or more additional remote SIM provisioning objects.
18. The LwM2M server according to claim 16, wherein: The instruction from the mobile network operator's server to update the SIM profile for the LwM2M client computing device includes one or more addresses at which the SIM profile packet from the mobile network operator's server can be downloaded by the LwM2M client computing device; and The remote SIM supply object includes one of the one or more addresses.
19. The LwM2M server according to claim 16, wherein: The processor is also configured with processor-executable instructions to perform the following operations prior to generating the remote SIM provisioning object: Determine whether the LwM2M client computing device supports the radio frequency (RF) band associated with the SIM profile update for the LwM2M client computing device; as well as In response to determining that the LwM2M client computing device does not support the RF band associated with the SIM profile update for the LwM2M client computing device, an indication of a SIM profile update error is sent to the mobile network operator's server; and The processor is configured with processor-executable instructions to generate the remote SIM provisioning object by: generating the remote SIM provisioning object in response to determining that the LwM2M client computing device does indeed support the RF band associated with the SIM profile update for the LwM2M client computing device.
20. The LwM2M server according to claim 16, wherein: The processor is also configured with processor-executable instructions to perform the following operations prior to generating the remote SIM provisioning object: Determine whether the free memory space of the SIM of the LwM2M client computing device is equal to or greater than the memory requirement for updating the SIM profile of the LwM2M client computing device; as well as In response to determining that the free memory space of the SIM is less than the memory requirement for the SIM profile update for the LwM2M client computing device, an indication of a SIM profile update error is sent to the mobile network operator server. and The processor is configured with processor-executable instructions to generate the remote SIM provisioning object by: generating the remote SIM provisioning object in response to determining that the free memory space of the SIM is equal to or greater than the memory requirement of the SIM profile update for the LwM2M client computing device.
21. The LwM2M server according to claim 16, wherein, The processor is also configured with processor-executable instructions to send the remote SIM provisioning object to the LwM2M client computing device by using a secure connection.
22. The LwM2M server according to claim 16, wherein, The processor is also configured with processor-executable instructions to: Determine whether an indication has been received from the LwM2M client computing device that the LwM2M client computing device has successfully downloaded the second remote SIM provisioning object of the SIM profile package; In response to determining that a second remote SIM provisioning object has been received from the LwM2M client computing device, a third remote SIM provisioning object including a profile update trigger indication is generated for the LwM2M client computing device; as well as Send the third remote SIM supply object to the LwM2M client computing device.
23. A lightweight machine-to-machine (LwM2M) client computing device, comprising: The processor is configured with processor-executable instructions to: The LwM2M server receives a remote SIM provisioning object indicating that a Subscriber Identity Module (SIM) profile update is available for the LwM2M client computing device and indicating a SIM profile update protocol supported by the LwM2M client computing device. The remote SIM provisioning object includes an address selected based on the SIM profile update protocol supported by the LwM2M client computing device, at which a SIM profile package can be downloaded. as well as In response to receiving the remote SIM provisioning object, the SIM profile update is downloaded. The processor is also configured with processor-executable instructions to download the SIM profile update by performing the following operations: The processor of the LwM2M client computing device sends a request for the SIM profile packet to the address; The processor of the LwM2M client computing device receives the SIM profile packet in response to the request to send the SIM profile packet to the address.
24. The LwM2M client computing device according to claim 23, wherein, The processor is also configured with processor-executable instructions to download the SIM profile update by: Receive SIM profile packets from one or more additional remote SIM provisioning objects from the LwM2M server; Determine whether the SIM profile package passes the integrity check; In response to determining that the SIM profile package has failed the integrity check, a remote SIM provisioning object indicating the integrity check failure is sent to the LwM2M server; as well as In response to determining that the SIM profile has passed the integrity check, a remote SIM provisioning object indicating that the SIM profile is in a downloaded state is sent to the LwM2M server.
25. The LwM2M client computing device according to claim 23, wherein: The processor is also configured with processor-executable instructions to download the SIM profile update by: Determine whether the SIM profile package passes the integrity check; In response to determining that the SIM profile package has failed the integrity check, a remote SIM provisioning object indicating the integrity check failure is sent to the LwM2M server; as well as In response to determining that the SIM profile has passed the integrity check, a remote SIM provisioning object indicating that the SIM profile is in a downloaded state is sent to the LwM2M server.
26. The LwM2M client computing device according to claim 23, wherein, The processor is also configured to receive processor-executable instructions from the remote SIM provisioning object by using a secure connection to receive the remote SIM provisioning object from the LwM2M server.
27. The LwM2M client computing device according to claim 23, wherein, The processor is also configured with processor-executable instructions to: Receive SIM profile package; Receive a second remote SIM provisioning object, including a profile update trigger indication, from the LwM2M server; as well as In response to receiving the second remote SIM provisioning object, the SIM profile packet is used to initiate a SIM profile update for the LwM2M client computing device.
28. The LwM2M client computing device according to claim 27, wherein, The processor is also configured with processor-executable instructions for sending a third remote SIM provisioning object to the LwM2M server in response to a successful update of the SIM profile, the third remote SIM provisioning object indicating a new current service provider for the LwM2M client computing device.
29. A lightweight machine-to-machine (LwM2M) server, the LwM2M server comprising components for performing the method of any one of claims 1 to 7.
30. A lightweight machine-to-machine (LwM2M) client computing device, the LwM2M client computing device comprising components for performing the method of any one of claims 8 to 15.
31. A non-transitory computer-readable storage medium storing instructions that cause a processor of a lightweight machine-to-machine (LwM2M) server to perform the method according to any one of claims 1 to 7.
32. A non-transitory computer-readable storage medium storing instructions that cause a processor of a lightweight machine-to-machine (LwM2M) client computing device to perform the method according to any one of claims 8 to 15.
Citation Information
Patent Citations
Profile handling of a communications device
CN111602417A