Method and system for using a remote subscriber identity module at a device

Through the remote communication method and system between the wireless communication module in the cellular router and the SIM card, the problems of complex SIM card management and high labor cost are solved, and the automated management of SIM card and cost-effective network connection are realized.

CN115426645BActive Publication Date: 2025-08-01PISMO LABS TECH
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202211110930.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2018-06-04
Publication Date
2025-08-01
Estimated Expiration
2038-06-04

AI Technical Summary

Technical Problem

In the prior art, replacing and managing SIM cards in cellular network devices requires physical access, resulting in high labor costs and complex management, making it difficult to achieve automated and cost-effective SIM card management.

Method used

Through the remote communication method and system between the wireless communication module in the cellular router and the SIM card, the modified request and reply mechanism is used to realize the remote management and switching of the SIM card, and reduce manual intervention.

Benefits of technology

Remote management and automated switching of SIM cards are realized, which reduces labor costs, improves operational efficiency, reduces roaming costs, and enhances the flexibility of network connections and management convenience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115426645B_ABST
    Figure CN115426645B_ABST
Patent Text Reader

Abstract

The present invention discloses a wireless communication method and system for a wireless communication device. The wireless communication device first sends a first request to a remote server and receives a first response from the remote server. After receiving the first response, the wireless communication device establishes a plurality of wireless connections with at least one of a first group of wireless communication networks. The first response includes SIM card information of a plurality of subscriber identity module (SIM) cards, and the wireless communication device selects a SIM card from the plurality of SIM cards for accessing the wireless communication network. The selection is partially based on the first group of wireless communication networks, which are the wireless communication networks accessible by the wireless communication device.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application with application number 201880001089.X and name “Method and system for using a remote subscriber identification module at a device”. Technical Field

[0002] The present invention relates generally to the field of network communications using Subscriber Identity Module (SIM) cards at electronic devices, and more particularly to the field of network communications using multiple remote SIM cards. Background Art

[0003] The ability for devices to communicate over cellular networks with other devices, such as web servers, the Internet of Things (IoT), autonomous vehicles, and routers, is crucial for many activities. Using a Subscriber Identity Module (SIM) card is crucial for transmitting and receiving data over cellular networks. Deploying and replacing SIM cards on such devices can require physical access to the device and SIM card, leading to expensive labor costs. Furthermore, the logistical work involved, such as recoding the use of SIM cards, selecting the lowest-rate SIM card, and determining when to replace a SIM card, can add additional labor costs. It would be desirable to have methods and systems that can reduce labor costs and lower tariff costs. Summary of the Invention

[0004] The present invention discloses a method and system for communicating at a cellular router between a first wireless communication module and a first subscriber identity module (SIM). According to the present invention, the cellular router includes at least one wireless communication module, at least one processing unit, at least one memory, and at least one non-transitory computer-readable storage medium storing program instructions executable by the at least one processing unit, configured to receive a first request from the first wireless communication module. The cellular router then encapsulates the first request within a first modified request and sends the first modified request to the first communication device. After sending the first modified request to the first communication device, the cellular router waits for a first modified response. While waiting for the first modified response, the cellular router sends at least one stop message to the first wireless communication module after a first time threshold. When the cellular router receives the first modified response, the cellular router decapsulates the first modified response to obtain the first response and sends the first response to the first wireless communication module. For the present invention, the first modified response is a response to the first modified request. The first wireless communication module is housed within or coupled to the cellular router, and the first SIM is not housed within the cellular router.

[0005] According to one embodiment of the present invention, the first modified request includes a SIM identity.

[0006] According to an embodiment of the present invention, the first time threshold is between one hundred milliseconds and two seconds.

[0007] According to an embodiment of the present invention, when multiple stop messages are sent to the first wireless communication module, the time interval between two consecutive stop messages is not longer than two seconds.

[0008] According to an embodiment of the present invention, at least one stop message is sent only when the first request includes a five - byte header.

[0009] According to an embodiment of the present invention, when the length of the first request is less than five bytes, an interrupt signal is sent to the first wireless communication module.

[0010] According to an embodiment of the present invention, the first response is stored.

[0011] According to an embodiment of the present invention, when a second request is received and the second request is the same as the first request, the first response is obtained and sent to the first wireless communication module.

[0012] According to an embodiment of the present invention, the second modified request is received through an aggregated end - to - end connection.

[0013] According to an embodiment of the present invention, the first modified request is sent through an aggregated end - to - end connection. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] Figure 1A Illustrates a scenario of a communication system according to an embodiment of the present invention.

[0015] Figure 1B Illustrates a scenario of a communication system according to an embodiment of the present invention.

[0016] Figure 2A The depicted flowchart illustrates the process of the communication system according to Figure 1B the communication system shown.

[0017] Figure 2B Illustrates the format of a message encapsulated in the payload of an IP packet according to an embodiment of the present invention.

[0018] Figure 3A Illustrates a basic block diagram of a cellular router according to an embodiment of the present invention.

[0019] Figure 3B Illustrates a basic block diagram of a communication device or a SIM library according to an embodiment of the present invention.

[0020] Figure 3C Illustrates the same Figure 1B basic block diagram of a cellular router as the cellular router 101 shown.

[0021] Figure 4A The depicted sequence of examples illustrates the steps and events of a particular scenario associated with the present invention.

[0022] Figure 4B The depicted sequence of examples illustrates the steps and events of a particular scenario associated with the present invention.

[0023] Figure 5A The depicted sequence of examples illustrates the steps and events of a particular scenario associated with the present invention.

[0024] Figure 5B The depicted sequence of examples illustrates the steps and events of a particular scenario associated with the present invention.

[0025] Figure 6 The depicted sequence diagram illustrates the various stages of messages transmitted and received between an example wireless communication module and an example SIM card.

[0026] Figure 7 Shows the structure of messages when transmitting and receiving data using Ethernet according to an embodiment of the present invention.

[0027] Figure 8 Shows a network diagram according to an embodiment of the present invention.

[0028] Figure 9 Shows sequences according to multiple embodiments of the present invention.

[0029] Figure 10 Shows Figure 9 A more detailed process of certain steps shown.

[0030] Figure 11 Shows Figure 9 A more detailed process of certain steps shown.

[0031] Figure 12 Shows a basic block diagram of an exemplary SIM directory server according to an embodiment of the present invention.

[0032] Figure 13 Shows a flowchart of a process performed according to an embodiment of the present invention. Detailed Description

[0033] The following description provides only preferred exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the present invention. In fact, the following description of the preferred exemplary embodiments will provide those skilled in the art with a favorable description of implementing the preferred exemplary embodiments of the present invention. It should be understood that various changes can be made to the functions and arrangements of the elements without departing from the spirit and scope of the present invention as set forth in the appended claims.

[0034] Specific details are given in the following description to provide a thorough understanding of the embodiments. However, those skilled in the art should understand that the embodiments can be practiced without these specific details. For example, circuits can be illustrated in block diagrams to avoid obscuring the embodiments with unnecessary details. In other cases, well-known circuits, processes, algorithms, structures, and techniques can be shown without unnecessary details to avoid obscuring the embodiments.

[0035] It should also be noted that embodiments can be described as processes, and the processes can be depicted as flowcharts, job diagrams, data flow diagrams, structure diagrams, or block diagrams. Although flowcharts can describe operations as sequential processes, many operations can be performed in parallel or simultaneously. Additionally, the order of operations can be rearranged. A process terminates when its operations are completed, but it can have additional steps not included in the figures. A process can correspond to a method, function, program, subroutine, subprogram, etc. When a process corresponds to a function, the termination of the process corresponds to the function returning to the calling function or the main function.

[0036] Embodiments or parts thereof can be implemented with program instructions that can operate on a processing unit to perform the functions and operations described herein. The program instructions constituting the various embodiments can be stored in a non-transitory storage medium. In addition, as disclosed herein, the term "non-transitory storage medium" can refer to one or more devices for storing data, including read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), random access memory (RAM), magnetic RAM, magnetic core memory, floppy disks, flexible disks, hard disks, magnetic tapes, CD-ROMs, flash memory devices, memory cards, and / or other machine-readable media for storing information. The term "machine-readable medium" includes, but is not limited to, portable or fixed storage devices, optical storage media, magnetic media, memory chips or cartridge disks, wireless channels, and various other media capable of storing, containing, or carrying instructions and / or data. Machine-readable media can be implemented through virtualization and can be virtual machine-readable media, including virtual machine-readable media in cloud-based instances.

[0037] As used herein, the terms "non-transitory computer-readable medium", "main memory", or "auxiliary memory" refer to any medium that participates in providing instructions to a processing unit for execution. A computer-readable medium is only one example of a machine-readable medium, which can carry instructions for implementing any of the methods and / or techniques described herein. Such media can take many forms, including but not limited to non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks. Volatile media includes dynamic memory. Transmission media includes coaxial cables, copper wire, and fiber optics. Transmission media can also take the form of acoustic or light waves, such as acoustic or light waves generated during radio wave and infrared data communications.

[0038] Volatile memory can be used to store temporary variables or other intermediate information during the execution of instructions by a processor / processing unit. Non-volatile memory or static memory can be used to store static information and instructions for the processor, as well as various system configuration parameters.

[0039] The storage medium can include multiple software modules, which can be implemented as software code to be executed by the processing unit using any suitable type of computer instructions. The software code can be stored in the storage medium as a series of instructions or commands, or as a program.

[0040] Various forms of computer-readable media can be involved in carrying one or more sequences of one or more instructions to a processor for execution. For example, the instructions can initially be carried on a disk of a remote computer. Alternatively, the remote computer can load the instructions into its dynamic memory and send the instructions to a system that runs one or more sequences of the instructions.

[0041] The processing unit can be a microprocessor, a microcontroller (MCU), a digital signal processor (DSP), any combination of those devices, or any other circuit configured to process information. The processing unit executes program instructions or code segments to implement embodiments of the present invention. Additionally, embodiments can be implemented by hardware, software, firmware, middleware, microcode, a hardware description language, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program instructions for performing the necessary tasks can be stored in a computer-readable storage medium. The processing unit can be implemented through virtualization and can be a virtual processing unit, including a virtual processing unit in a cloud-based instance.

[0042] A SIM card is a Subscriber Identity Module (SIM). Those skilled in the art will understand that when referring to a physical SIM, SIM and SIM card can be used interchangeably. SIM is also common as a subscriber identity module.

[0043] Embodiments of the present invention relate to using a computer system to implement the techniques described herein. In an embodiment, a processing unit of the present invention may be present on a machine such as a computer platform. According to one embodiment of the present invention, the techniques described herein are performed by a computer system in response to one or more sequences of one or more instructions contained in a volatile memory being executed by a processing unit. Such instructions may be read into the volatile memory from another computer-readable medium. Execution of the sequences of instructions contained in the volatile memory causes the processing unit to perform the process steps described herein. In an alternative embodiment, hardwired circuitry may be used in place of or in combination with software instructions to implement the present invention. Accordingly, embodiments of the present invention are not limited to any specific combination of hardware circuitry and software.

[0044] Code segments such as program instructions may represent procedures, functions, subroutines, programs, routines, subroutines, modules, software packages, classes, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

[0045] Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement a process in accordance with the principles of the present invention. Accordingly, implementations in accordance with the principles of the present invention are not limited to any specific combination of hardware circuitry and software.

[0046] Network interfaces that may be provided by a node are an Ethernet interface, a Frame Relay interface, a fiber optic interface, a cable interface, a DSL interface, a Token Ring interface, a serial bus interface, a Universal Serial Bus (USB) interface, a FireWire interface, a Peripheral Component Interconnect (PCI) interface, a cellular modem, etc.

[0047] A network interface may be implemented by separate electronic components or may be integrated with other electronic components. Depending on the configuration, a network interface may not have a network connection or may have at least one network connection. A network interface may be an Ethernet interface, a Frame Relay interface, a fiber optic interface, a cable interface, a Digital Subscriber Line (DSL) interface, a Token Ring interface, a serial bus interface, a Universal Serial Bus (USB) interface, a FireWire interface, a Peripheral Component Interconnect (PCI) interface, a cellular modem, etc.

[0048] The network interface can be connected to a wired or wireless access network. The access network can carry one or more network protocol data. The wired access network can be implemented using Ethernet, fiber optic, cable, DSL, frame relay, token ring, serial bus, USB, FireWire, PCI, or any material capable of transmitting information. The wireless access network can be implemented using infrared, High-Speed Packet Access (HSPA), HSPA+, Long Term Evolution (LTE), WiMax, GPRS, EDGE, GSM, CDMA, WiFi, CDMA2000, WCDMA, TD-SCDMA, Bluetooth, WiBRO, Evolution-Data Optimized (EV-DO); Digital Enhanced Cordless Telecommunications (DECT); Digital AMPS (IS-136 / TDMA); Integrated Digital Enhanced Network (iDEN), or any other wireless technology.

[0049] Embodiments or portions thereof can be implemented in a computer data signal, which can be in any suitable form for communication over a transmission medium such that it is readable for execution by a functional device (e.g., a processing unit) to perform the operations described herein. The computer data signal can comprise any binary digital electronic signal capable of propagating over a transmission medium, such as an electronic network channel, fiber optic, air, electromagnetic medium, radio frequency (RF) link, etc., and thus the data signal can be in the form of an electrical signal, an optical signal, a radio frequency, or other wireless communication signal, etc. In certain embodiments, code segments can be downloaded via a computer network, such as the Internet, an intranet, a LAN, a MAN, a WAN, a PSTN, a satellite communication system, a cable transmission system, etc.

[0050] Figure 1A A scenario of a communication system according to an embodiment of the present invention is shown. Communication system 120 includes a communication device 114 connected to a cellular router 111 via a connection 112. The cellular router can be a cellular router with cellular connection capabilities.

[0051] The cellular router 111 and the communication device 114 further include a microcontroller unit (MCU) and other related circuits, which are not shown here for simplicity. Figure 1A in the figure.

[0052] The communication device 114 and the cellular router 111 are connected by a connection 112. The connection 112 is used to transmit data containing SIM card information between the communication device 114 and the cellular router 111. One end of the connection 112 is connected to the cellular router 111, and the other end of the connection 112 is connected to the communication device 114. The LDP 117 can be used as the WAN interface of the communication device 114 and is used to send and receive data containing SIM card information. The RDP 116 is used to send and receive data containing SIM card information and can be used as the LAN interface of the cellular router 111.

[0053] The connection 112 can include one or more wires, such as a CAT-5 cable, and can inject power into the CAT-5 cable according to the Power over Ethernet (PoE) standard. The cellular router 111 can use PoE technology to draw power from the communication device 114 through the connection 112.

[0054] In a variant, the cellular router 111 also uses PoE technology to supply power to the communication device 114 through the connection 112. There is no limitation that a cable must be used to connect the communication device 114 and the cellular router 111. Wireless communication technologies such as WiFi and infrared communication can be used instead of the connection 112.

[0055] The antenna 113 is connected to the cellular router 111 to send electrical signals to the base station 108 and receive electrical signals from the base station 108. The cellular router 111 is capable of performing wireless communication using the antenna 113.

[0056] When the SIM card is inserted into the SIM slot 115, the SIM card information of the SIM card is transmitted to or received from the cellular router 111. By using the SIM card information, the cellular router 111 can connect to the wireless network. For this embodiment, the number of SIM slots 115 in the communication device 114 is not limited. Each SIM slot 115 can accommodate one SIM card. There is no limitation that the SIM cards must be issued by the same wireless service provider. In one instance, the SIM cards are issued by five wireless service providers in five different countries. Various SIM card providers allow the cellular router 111 to use different SIM cards according to different needs.

[0057] The communication device 114 has a LAN interface 118 for connecting to one or more hosts and / or nodes to transmit and receive information. For example, the host and / or node forms a LAN with the communication device 114 via the LAN interface 118. The communication device 114 can also be used as an Internet router or gateway for the host and / or node. The number of LAN interfaces 118 is not limited to one. For example, the communication device 114 can have multiple LAN interfaces 118. The LAN interface 118 can be a wired LAN interface, a wireless LAN interface, or a combination of a wired LAN interface and a wireless LAN interface. For example, the LAN interface 118 can be a wired Ethernet interface. In another example, the LAN interface 118 can be an IEEE 802.11-based LAN interface.

[0058] In a variant, the communication device 114 is an Ethernet switch or hub. Then the LDP 117 becomes the LAN interface. The communication device 114 can be connected to one or more hosts and / or nodes. The cellular router 111 serves as an Internet router or gateway for the hosts and nodes connected to the communication device 114.

[0059] Figure 1B The scenario of a communication system according to an embodiment of the present invention is shown. The communication system 100 includes a cellular router 101 and a communication device 105 connected via an interconnection network 103. The cellular router 101 includes one or more network interfaces 102, multiple wireless communication modules 109, and multiple antennas 107. The cellular router 101 can use the wireless communication modules 109 and antennas 107 to connect to one or more wireless communication networks or a cellular network associated with the base station 108. The communication device 105 includes a network interface 104 and a SIM slot 106. The SIM slot 106 can represent one or more SIM cards for the communication device 105. The cellular router 101 and the communication device 105 further include an MCU, and other related circuits not shown here for simplicity. Figure 1B in Figure 2A view Figure 1B . Figure 2A The depicted flowchart shows the process of the communication system 100 according to Figure 1B shown.

[0060] In steps 201 and 202, the cellular router 101 and the communication device 105 are provided respectively.

[0061] In step 203, the cellular router 101 is allowed to register with the interconnection network 103 using the wireless communication module 109a embedded in the cellular router 101 and the first SIM card inserted into the SIM slot of the cellular router 101. For simplicity, Figure 1BThe first SIM card inserted into the SIM slot of the cellular router 101 is not shown. The interconnected network 103 can be an externally locally accessible cellular network or an interconnection of cellular networks. The externally locally accessible network is a home network associated with a local SIM card in an overseas region. The home network can be accessed via an international SIM card, but there are roaming charges. The roaming charges depend on the destination and the type of roaming available there. After the cellular router 101 registers with the interconnected network 103, a first data connection or a first data link is established between the cellular router 101 and the communication device 105 via the wireless communication module 109a. The established first data connection or first data link is preferably temporary and may require roaming charges when starting the connection with the communication device 105.

[0062] In a variant, the cellular router 101 is capable of accessing the Internet via a connection. Instead of using a cellular connection to establish the first data connection, for example, a Wi-Fi connection, a wired connection, or any other available technology can be used to establish the first data connection. Then, the cellular router 101 can communicate with the communication device 105 via the first data connection. In this case, it is not necessary to use the first SIM card and the wireless communication module 109a and register with the interconnected network 103.

[0063] In step 204, the cellular router 101 sends a request to use the second SIM card to the communication device 105. The request contains router information and is sent using the first data connection. After receiving the request, in step 205, the communication device 105 selects the second SIM card from the SIM slot 106. The selection of the second SIM card can be based on various factors, such as geographical coverage area, connection bandwidth, time, network identification, service provider, usage price, and signal quality. Preferably, the second SIM card can be registered to obtain the local benefits of the services provided by the interconnected network 103, so that the use of the second SIM card does not incur roaming charges. The router information can include the identification of the cellular router 101, the identification of the administrator of the cellular router 101, the cellular networks that can be connected by the wireless communication module 109a, the identification of the cellular network currently registered by the wireless communication module 109a, and the location of the cellular router 101. The identification of the cellular router 101 can include the serial number of the cellular router 101. The identification of the cellular router 101 can also include one or more MAC addresses assigned to the cellular router 101. The location of the cellular router 101 can include GPS coordinates provided by a GPS sensor in the cellular router 101 or input by the user of the cellular router 101.

[0064] The request may also include authentication information. The authentication information is used to verify that the request is sent by a valid user or device. For example, a rogue network host may steal router information and disguise itself as the cellular router 101 in order to use the SIM card in the communication device 105. The use of authentication information will minimize the possibility of such theft.

[0065] The communication device 105 responds to the request with the SIM card information and identification of the second SIM card. The communication device 105 also reserves the second SIM card for a period of time for use by the cellular router 101.

[0066] In step 206, the cellular router 101 receives the response from the communication device 105. Then, the router MCU of the cellular router 101 prepares the wireless communication module 109b to use the second SIM card. The selected second SIM card is allocated to the wireless communication module 109b. Then the router MCU in the cellular router 101 starts the wireless communication module 109b. Then the wireless communication module 109b will send an ATR (Answer To Reset). After receiving the ATR, the router MCU of the cellular router 101 will send the ATR to the communication device 105 according to the sequence shown in Figure 6

[0067] In step 207, the wireless communication module 109b can then register with the interconnected network 103 using some or all of the SIM card information associated with the selected second SIM card received from the communication device 105.

[0068] Generally, a wireless network requires the cellular router 101 to be authenticated at each startup event or even after a certain period of time. Therefore, the cellular router 101 should be connected to the communication device 105 for continuous authentication.

[0069] In step 208, the cellular router 101 can now connect to the interconnected network 103 through the wireless communication module 109b. A second data connection is established between the cellular router 101 and the communication device 105 using the wireless communication module 109b and the selected second SIM card from the SIM slot 106. After establishing the second data connection, the cellular router 101 uses the wireless communication module 109b to maintain the connection with the communication device.

[0070] In step 209, the first data connection is interrupted and the first SIM card is stopped from being used. Therefore, the user of the cellular router 101 does not need to bear more roaming charges. The wireless communication module 109a can be reset, restarted, or stopped. When the first SIM card is not in use, SIM card information, data communication, and SMS messages cannot be transmitted or received from the first SIM card.

[0071] In a variant example, the wireless communication module 109a uses the SIM card information from the third SIM card to connect to the interconnected network 103. The third SIM card is a SIM card other than the SIM card already used in the communication device 105 or another SIM card used in another communication device. The ability to use the wireless communication module 109a together with the third SIM card and the wireless communication module 109b is to bind one or more data connections to form an aggregated data connection. The aggregated data connection can provide more bandwidth than a single data connection. The aggregated data connection can be regarded as one data connection by the session or application using it. In a variant example, the aggregated data connection can be regarded as a VPN connection. Compared with using only the wireless communication module 109b alone, the additional bandwidth and higher reliability provide better performance. When the wireless communication module 109a is not used to connect to the interconnected network, steps 210 to 214 can be skipped.

[0072] In step 210, similar to step 204 but for the third SIM card, the cellular router 101 sends a request containing router information for using the third SIM card with the SIM card inserted in the SIM slot 106. The process in step 211 is similar to the process in step 205 but for the third SIM card.

[0073] In step 212, the selected third SIM card is allocated to the wireless communication module 109a. In step 213, the cellular router 101 registers with the interconnected network 103 using the selected third SIM card. In step 214, the cellular router 101 can now also connect to the interconnected network 103 through the wireless communication module 109a.

[0074] Figure 3A A basic block diagram of an example cellular router according to an embodiment of the present invention is shown. The cellular router 300 includes a data bus 301, a memory 302, a processing unit 303, a storage unit 304, a remote data port (RDP) 305, an MCU 306, a wireless communication module 307, an interface circuit 308, a SIM slot 309, a network interface 310, and an antenna 340. The processing unit 303 is directly connected to the memory 302.

[0075] The processing unit 303 executes program instructions or code segments to implement an embodiment of the cellular router of the present invention.

[0076] The memory 302 and the storage unit 304 are non-transitory computer-readable storage media. In another embodiment, the storage unit 304 is a non-volatile memory. The non-volatile memory or the static memory can be used to store the static information and instructions of the processor, as well as various system configuration parameters. The storage unit 304 can be configured to store firmware. The firmware can be the operating system of the cellular router 300.

[0077] The RDP 305 sends and receives data containing SIM card information to and from the communication device 320. The RDP 305 is also capable of sending data to and receiving data from the MCU 306.

[0078] The MCU 306 receives the SIM card information sent from the RDP 305 and transmits the SIM card information to the wireless communication module 307. The MCU 306 is also capable of receiving and transmitting messages and keys from and to the wireless communication module 307 through the RDP 305. The MCU 306 is also used for encapsulating and obtaining data, including the SIM card information sent to and from the communication device 320.

[0079] The interface circuit 308 includes related circuits, such as a bus switch and a voltage shifter. The bus switch is used to select the SIM card information received from the MCU 306 accordingly, and the voltage shifter is used to change the voltage of the output from the router MCU 306 when needed.

[0080] The wireless communication module 307 receives the SIM card information and then verifies it with the wireless communication network or the cellular network via the antenna 340 based on the information. The wireless communication module 307 is also capable of sending messages to the MCU 306. There is no limit to the number of the wireless communication modules of the present invention. For example, Figure 3C is shown the same example cellular router 330 as Figure 1B the cellular router 101 shown. Figure 3C Similar to Figure 3A , but Figure 3C the cellular router 330 shown further includes two wireless communication modules 307a - b, which are directly connected to the interface circuits 308a - b respectively and are also connected to the antennas 340a - b. The interface circuits 308a - b are directly connected to the SIM slots 309a - b and are also directly connected to the MCU 306. The wireless communication modules 307 can be accommodated inside the cellular router or coupled to the cellular router. There is no limit to the number of the wireless communication modules, antennas, SIM slots and MCUs. For example, there may be eight wireless communication modules, thirty-two antennas, sixteen SIM slots and two MCUs. More specifically, each MCU is connected to four wireless communication modules; each wireless communication module is connected to two SIM slots and four antennas.

[0081] The data bus 301 directly or indirectly connects the processing unit 303 to the storage unit 304, RDP 305, MCU 306, and wireless communication module 307.

[0082] Figure 3B The basic block diagram of an example communication device or SIM library according to an embodiment of the present invention is shown.

[0083] The communication device 320 includes a processing unit 312, a memory 311, a storage unit 313, an MCU 314, a data bus 301, a local data port (LDP) 318, a LAN interface 317, an interface integrated circuit (IC) 316, and a SIM slot 315. The processing unit 312 and the memory 311 are directly connected to each other. There is no limit to the number of interface ICs.

[0084] The processing unit 312 executes program instructions or code segments to implement an embodiment of the communication device 320 of the present invention.

[0085] The memory 311 and the storage unit 313 are non-transitory computer-readable storage media. The storage medium may contain multiple software modules, and these software modules may be implemented as software code executed by the processing unit 312 using any suitable type of computer instruction. The software code may be stored in the storage medium as a series of instructions or commands, or as a program.

[0086] The LDP 318 is optional and sends and receives data containing SIM card information to and from the cellular router 300. The LDP 318 can also be used as a LAN interface.

[0087] The LAN interface 317 can be connected to one or more hosts and / or nodes to send and receive information.

[0088] The MCU 314 sends and receives data containing SIM card information to and from the SIM card inserted into the SIM slot 315. The MCU 314 can also send and receive data containing SIM card information to and from the cellular router through the LDP 318. The MCU 314 is also used to encapsulate and obtain data, including SIM card information sent to and from the cellular router 300.

[0089] The data bus 301 directly or indirectly connects the processing unit 312 to the storage unit 313, MCU 314, LAN interface 317, and LDP 318.

[0090] The interface IC 316 is used in combination with the MCU 314 for communicating with the SIM card inserted into the SIM slot 315. The interface IC 316 is also used to move the voltage up and down because the pin voltage of the MCU 314 may be different from the pin voltage of the SIM card. It is not restricted that the interface IC 316 must be used with the MCU 314 for communicating with the SIM card inserted into the SIM slot 315. In a variant, when the pin voltage of the MCU 314 is the same as the pin voltage of the SIM card, the MCU 314 is directly connected to the SIM card inserted into the SIM slot 315. When the SIM card is inserted into or removed from the SIM slot (such as the SIM slot 315a), a signal is generated and received by the MCU 314. Then, the MCU 314 can generate a message or signal for the processing unit 312. Subsequently, the processing unit 312 can send a message to a host or a server (such as a cellular router or a SIM directory server) to notify the host or the server of the status change of the SIM slot and / or the SIM card.

[0091] Figure 6 Illustrated are the various stages of transmitting and receiving messages via the interface IC 316a, the router MCU 306, the SIM library MCU 314, and the integrated circuit 308a between an example wireless communication module such as the wireless communication module 307a and an example SIM card such as the SIM card inserted into the SIM slot 315a according to an embodiment of the present invention. The messages may include a reset response (ATR), control messages, management messages, requests, notifications, indications, and authentication messages. The messages may be part of the SIM card information.

[0092] Since the distance between the wireless communication module 307a and the SIM slot 315a is longer than a few inches, the propagation delay may be longer than the propagation delay initially expected in the SIM card protocol. The longer propagation delay may cause the IP packet in the Ethernet frame to reach its destination with a delay. Therefore, after generating a reset signal from the wireless communication module 307a to the SIM card inserted into the SIM slot 315a, it is required that the ATR be quickly available. The ATR is an output message generated by the SIM card inserted into the SIM slot 315a that complies with the ISO / IEC 7816 standard. After the ATR, there is an electrical reset of the SIM card chip in the SIM slot 315a, and in one example, the ATR is used as the first indication that the SIM card inserted into the SIM slot 315a is operable. The ATR also conveys information about the nature and status of the SIM card inserted into the SIM slot 315a and the communication parameters proposed by the SIM card inserted into the SIM slot 315a. For this embodiment, the ATR is achieved by transmitting and receiving a series of control messages between the wireless communication module 307a and the SIM card inserted into the SIM slot 315a, as shown in the steps of Figure 6 as shown.

[0093] In step 601, an activation message is sent from the router MCU 306 to the SIM library MCU 314. The activation message is used to cause the interface IC 308a to send an activation signal for a specific SIM card inserted into the SIM slot 315a. To identify the specific SIM card inserted into the SIM slot 315a from the SIM cards inserted into the SIM slot 315, the activation message is accompanied by a SIM card identifier. The activation message, together with the SIM card identifier, is encapsulated in one or more IP packets and then sent to the SIM library MCU 314. The one or more IP packets can also be embedded by the router MCU 306 in one or more Ethernet frames and sent to the SIM library MCU 314.

[0094] In one instance, the activation signal pulls the reset pin of the specific SIM card low for about 100 ms and then drives the reset pin high again. Depending on the specifications of the specific SIM card, the activation signal can also pull the reset pin high.

[0095] There is no limitation on the format of one or more messages including requests or responses transmitted and received between the router MCU 306 and the SIM library MCU 314. There is also no limitation on the communication technology used for transmitting and receiving messages. For example, Internet Protocol (IP) packets can be used to encapsulate messages between the router MCU 306 and the SIM library MCU 314. The composition of the messages can have specific fields for specific information. Figure 2B One of the message formats encapsulated in the payload of such an IP packet is shown. Field 2201 holds a signature. The signature is used for security and verification purposes, such as verifying the source and confirming the integrity of the message. The signature can also be used by the receiving processor, such as by the router MCU 306 and the SIM library MCU 314, to identify the IP packets for SIM card messages, especially when the IP address of the receiving party has not been discovered. Since the cellular router 330 has more than one wireless communication module 307, an identifier is needed to distinguish the receiver and / or sender of the request / response. Field 2202 holds a specific identifier of the wireless communication module. Similarly, the communication device 320 can have one or more SIM cards inserted into the SIM slot 315. Each SIM card slot has a specific SIM card slot identifier. Field 2203 holds the specific identifier for identifying the specific SIM card slot. Field 2204 holds the request or response transmitted between the wireless communication module and the SIM card inserted into the SIM card slot.

[0096] In one instance, the router MCU 306 and the SIM library MCU 314 communicate via the Ethernet protocol. Figure 7Shows the message structure when transmitting and receiving data between the router MCU 306 and the SIM library MCU 314 using Ethernet. The Ethernet frame 7001 consists of an IP packet 7002. The IP packet 7002 is capable of holding data including SIM card information and MCU creation information 7003.

[0097] The router MCU 306 and the SIM library MCU 314 are capable of encapsulating data into the payloads of one or more IP packets 7002 and embedding one or more IP packets 7002 into the payloads of one or more Ethernet frames 7001.

[0098] For example purposes, the router MCU 306 encapsulates the activation message in field 2204, as well as the signature and SIM card slot identification in fields 2201 and 2203 respectively, into the payloads of one or more IP packets and embeds one or more IP packets into the payloads of one or more Ethernet frames. Then, the router MCU 306 transmits one or more Ethernet frames to the SIM library MCU 314.

[0099] When the SIM library MCU 314 receives the activation message from the router MCU 306, the SIM library MCU 314 first de-embeds one or more Ethernet frames and obtains the signature in field 2201, the SIM card slot identification in field 2203, and the activation message in field 2204 from one or more IP packets. Then, the SIM library MCU 314 transmits the activation message in field 2204 to the interface IC connected to the SIM card inserted into a SIM card slot according to the SIM card slot identification in field 2203. When the SIM card receives the activation signal sent from the SIM library MCU 314 through the interface IC, the SIM card will generate an ATR. Then the ATR is transmitted to the SIM library MCU 314 through its corresponding interface IC. The SIM library MCU 314 receives the ATR and encapsulates the ATR in field 2204, as well as the signature and SIM card slot identification in fields 2201 and 2203 respectively, into the payloads of one or more IP packets. Then, the SIM library MCU 314 embeds one or more IP packets into the payloads of one or more Ethernet frames and transmits one or more Ethernet frames to the router MCU 306. For this illustration, the wireless communication module identification in field 2202 is left blank and the router MCU 306 determines it according to the specific identification of the wireless communication module 307a that will send the reset signal.

[0100] In a variant example, the router MCU 306 sends an activation message to the SIM library MCU 314, leaving the SIM card slot identification in field 2203 blank. In this case, the SIM library MCU 314 obtains the signature and activation message from fields 2201 and 2204 respectively. Then, the SIM library MCU 314 sends the activation message to a randomly selected interface IC, which is connected to a SIM card inserted into one of the SIM slots 315.

[0101] In step 602, the activation message in the request / response stored in field 2204 is received at the SIM library MCU 314 in the form of one or more Ethernet frames. Then, at the SIM library MCU 314, the one or more Ethernet frames are de-embedded and the one or more IP packets are de-encapsulated to obtain the activation message, the SIM card slot identification, and the signature from fields 2204, 2203, and 2201 respectively. After obtaining the activation message, the activation message is sent to the interface IC connected to the specific SIM card slot according to the SIM card slot identification in field 2203. For this embodiment, the SIM card slot identification in field 2203 is for SIM slot 315a, and the activation message is sent by the SIM library MCU 314 to the interface IC 308a accordingly.

[0102] In step 603, the activation message is received through the interface IC 308a. When the SIM card inserted into the SIM slot 315a receives the activation signal, it will send an ATR.

[0103] In a variant example, when the SIM library MCU 314 can directly communicate with the SIM card in the SIM slot 315a, the interface IC 308a may not be required, and the activation message in step 602 is directly sent from the SIM library MCU 314 to the SIM card inserted into the SIM slot 315a.

[0104] In step 604, the activation signal is received through the SIM card inserted into the SIM slot 315a. After receiving the activation signal, as a response, the SIM card inserted into the SIM slot 315a sends the ATR to the interface IC 308a.

[0105] In a variant example, when the SIM card inserted into the SIM slot 315a can directly communicate with the SIM library MCU 314, the interface IC 308a is not required, and the ATR in step 604 is directly sent from the SIM card inserted into the SIM slot 315a to the SIM library MCU 314.

[0106] In step 605, the ATR is sent from the interface IC 308a to the SIM library MCU 314.

[0107] In step 606, the ATR is received by the SIM library MCU 1835. When the SIM library MCU 314 receives the ATR, the SIM library MCU 314 stores the identification of the SIM slot 315a. The SIM library MCU 314 also creates a signature. Then, the ATR with the signature and the SIM card slot identification is encapsulated in the payload of one or more IP packets according to the format shown in Figure 2B . Then, one or more IP packets are embedded in one or more Ethernet frames by the SIM library MCU 314 and sent to the router MCU 306. The router MCU 306 receives the ATR in the form of one or more Ethernet frames. Then, at the router MCU 306, one or more Ethernet frames are de-embedded and one or more IP packets are de-encapsulated to obtain the ATR. After obtaining the ATR, once the router MCU 306 receives a reset signal, the ATR is sent to the wireless communication module 307a via the interface circuit 316a.

[0108] When the distance between the SIM card inserted in the SIM slot 315a and the wireless communication module 307a exceeds one meter, the ATR sent in response from the SIM card inserted in the SIM slot 315a may take longer than the time required to propagate to the wireless communication module 307a. To overcome this drawback, a time limit is allocated to receive the response from the SIM card inserted in the SIM slot 315a. The ATR sent in response to the activation signal from the SIM card inserted in the SIM slot 315a is received by the router MCU 306. After receiving the ATR, the router MCU 306 obtains and stores the ATR. Once the router MCU 306 receives a reset signal from the wireless communication module 307a, the ATR is quickly sent to the wireless communication module 307a within a first or second time limit (e.g., 0.1 second or 1 second respectively). This configuration is provided to improve the response time. In one example, when the wireless communication module 307a needs ATR information to start a communication session with the SIM card inserted in the SIM slot 315a, the ATR is obtained by sending a reset signal to the router MCU 306, thus avoiding the need to communicate with the SIM card inserted in the SIM slot 315a at this moment.

[0109] In step 607, the interface circuit 316a receives the reset signal initiated by the wireless communication module 307a for sending to the router MCU 306. Since the output voltage from the wireless communication module 307a may not match the input voltage of the router MCU 306, the wireless communication module 307a may not be able to communicate with the router MCU 306. The interface circuit 316a including a voltage shifter and other related circuits helps to shift the voltage to send the reset signal to the router MCU 306.

[0110] In a variant example, when the wireless communication module 307a can directly communicate with the router MCU 306 without voltage conversion, the voltage shifter in the interface circuit 316a is not required, and the reset signal in step 607 can be directly sent from the wireless communication module 307a to the router MCU 306.

[0111] In step 608, the router MCU 306 receives the reset signal from the interface circuit 316a. When the router MCU 306 receives the reset signal, the router MCU 306 stores the identification of the wireless communication module 307a for sending the ATR. Then it is ready to send the ATR to the wireless communication module 307a via the interface circuit 316a.

[0112] In step 609, the interface circuit 316a receives the ATR from the router MCU 306. The voltage shifter in the interface circuit 316a helps shift the voltage to send the ATR to the wireless communication module 307a.

[0113] In a variant example, when the router MCU 306 can directly communicate with the wireless communication module 307a, the interface circuit 316a may not be required, and the ATR in step 609 is directly sent from the router MCU 306 to the wireless communication module 307a.

[0114] In step 610, the ATR is received at the wireless communication module 307a. After receiving the ATR, a basic communication channel is established between the SIM card inserted in the SIM slot 315a and the wireless communication module 307a. Then, the wireless communication module 307a starts communicating with the SIM card inserted in the SIM slot 315a using the information contained in the ATR.

[0115] There is no limitation Figure 6 The sequence shown is only applicable to the SIM slot 315a. The sequence is also applicable to other SIM slots in 315, including the SIM slot 315n.

[0116] There is no time limit for executing step 607 after step 606. For example, step 607 can be executed within one second after executing step 606. In another instance, step 607 can be executed several days after executing step 606.

[0117] In a variant example, the ATR is cached or stored, and a communication session is established between a wireless communication module and a SIM card inserted in a SIM card slot. Figure 6The sequence shown also applies to the embodiments of the variant example, except that it is not necessary to separately allocate and insert the ID of the SIM card in the SIM card slot and the ID of the wireless communication module in one or more IP packets in steps 601 and 606, respectively.

[0118] In one variant example, the SIM library MCU 314 starts step 602 without performing step 601. Thus, step 602 is performed without receiving a message or request from the router MCU 306. When an ATR is received in step 605, the SIM library MCU 314 then stores the ATR in a non-transitory storage medium and does not send it to the router MCU 306 until the router MCU 306 requests the ATR. Since the cellular router may not need the SIM card information from a specific SIM card, the router MCU 306 does not need to have the ATR of the specific SIM card. When the router MCU 306 sends an activation message by performing step 601, when steps 602 - 605 have been performed, step 606 can be performed faster compared to when steps 602 - 605 have not been performed previously. In another variant example, step 606 is performed without performing step 601. The ATR is sent to the router MCU 306 to be stored in a non-transitory computer-readable storage medium at the cellular router. This allows the ATR to be quickly sent to the wireless communication module 307a in step 609 because the ATR has already been stored in the non-transitory computer-readable storage medium at the cellular router.

[0119] There is no limitation that only the ATR is stored in the non-transitory computer-readable storage medium at the communication device or the cellular router. Other SIM card information can also be stored. For example, the International Mobile Subscriber Identity (IMSI) and contact information can also be stored.

[0120] In one variant example, there is no SIM card identification information of the router MCU 306 in the activation message at step 601. Then, the SIM library MCU 314 can select one of the SIM cards to send the activation message in step 602.

[0121] There is also no limitation on the number of ATRs that can be cached or stored at the communication device or the cellular router. For example, ten SIM cards are inserted into the SIM card slot of the communication device 320. The communication device 320 sends activation messages to the ten SIM cards and then stores the received ATRs. In another example, the router MCU 306 sends activation messages to the ten SIM cards and then stores the received ATRs.

[0122] In a variant example, when the ATR has been longer than the first time period, the ATR is discarded. The first time period should not be less than one minute. The preferred time period is from five minutes to one day. The longer the first time period, the higher the probability that the SIM card corresponding to the ATR may no longer be available.

[0123] In a variant example, when the SIM card is being used or removed from the communication device 320, the communication device 320 will send a message to the cellular router to notify the cellular router that the SIM card cannot be selected. Then, the cellular router will not include the identification of the SIM card in the activation message. The cellular router may include the identification of another SIM card. In a variant example, if there is no preference for which SIM card to use or the SIM identification is unknown, the cellular router may not include any SIM card identification in the activation message. In a variant example, the cellular router may include SIM card selection criteria in the activation message to enable the communication device 320 to select a SIM card for the wireless communication module.

[0124] One of the reasons for discarding the ATR is that the SIM card corresponding to the ATR may be being used by another cellular router or being removed from the communication device. Therefore, the ATR can no longer be used.

[0125] Figure 4A The illustrated example sequence diagram shows the steps and events of a particular scenario associated with the present invention. This embodiment attempts to extend the waiting time of the wireless communication module 307a. After the wireless communication module 307a sends a request for a response from the corresponding SIM card, the router MCU 306 sends a stop command to the wireless communication module 307a to notify the wireless communication module 307a that the corresponding SIM card is still processing the request. According to the ISO / IEC 7816 standard family (version A) with the T = 0 protocol, the stop command is a message with a process byte containing a null value (i.e., value 60). In this particular scenario, the request consists of a five-byte header and a body. Therefore, the complete size of the request is at least five bytes long. For ease of reading, the term "FBR" used here refers to a request that is at least five bytes long.

[0126] The request 401 is an FBR and is first transmitted from the wireless communication module 307a. Then, the request 401 is passed through the interface circuit 308a and reaches the router MCU 306.

[0127] Then, the router MCU 306 according to Figure 2BThe format shown modifies request 401 to request 402, and then transmits request 402 to the SIM library MCU 314. The transmission of request 402 is managed using the Transmission Control Protocol (TCP) and is thus considered reliable. In a variant, when speed is more important than reliability, request 402 is sent using the User Datagram Protocol (UDP) because, unlike TCP, UDP is a connectionless protocol where speed is a trade-off that is superior to reliability. Additionally, the UDP transmission of request 402 can be used in a network environment where the router MCU 306 wants to broadcast or multicast request 402 in order to connect to more than one SIM library MCU 314.

[0128] For example, after 0.8 seconds, the router MCU 306 reaches its time threshold 403a. It should be understood that there is no limit to how many seconds the time threshold 403 can be set, as long as it is shorter than the timeout period of the wireless communication module 307a. The time threshold 403 can be predetermined based on instructions from the user or administrator of the cellular router 300. The time threshold 403 can also be preconfigured by the manufacturer of the cellular router 300. In one instance, when the timeout period of the wireless communication module is set to 1.2 seconds, the time threshold of the router MCU 306 can be set to 0.8 seconds. At 0.8 seconds, when no response is received from the SIM library MCU 314, the router MCU 306 stops transmitting command 404a to the wireless communication module 307a. The stop command 404a is used to instruct the wireless communication module 307a to wait further. When the wireless communication module 307a receives the stop command 404a, it will continue to wait for a response for a period of time.

[0129] In this illustration, if no response has been received within 0.8 seconds, the router MCU 306 reaches its time threshold 403b again, which is 1.6 seconds, i.e., 0.8 seconds after sending the stop command 404a. Then, the router MCU 306 repeats the previously disclosed process and transmits the stop command 404b to the wireless communication module 307a. When the wireless communication module 307a receives the stop command 404b, it will wait for a response for another 1.2 seconds. Similarly, the router MCU 306 sends the stop command 404c to the wireless communication module 307a again at the time threshold 403c (i.e., 2.4 seconds, i.e., 0.8 seconds after sending the stop command 404b).

[0130] by Figure 2BReceives response 405 in the format shown. After receiving response 405, router MCU 306 then extracts the SIM card information from response 405 and sends the SIM card information to wireless communication module 307a in response 406. Since response 406 has been sent to wireless communication module 307a, router MCU 306 stops transmitting the stop command to wireless communication module 307a because there is no longer a need to extend the timeout period of response 405. Then, wireless communication module 307a executes according to the received response. In another scenario, response 405 is still not received within the third extended timeout period, and router MCU 306 approaches the time threshold again. In this case, whenever router MCU 306 approaches its time threshold without receiving a response from SIM library MCU 314, router MCU 306 transmits a stop command to wireless communication module 307a to reset the timer and attempt to extend the timeout period of wireless communication module 307a. Thus, the 1.2 - second timeout period can be extended to, for example, one minute. Additionally, there is no limit that the timeout period of wireless communication can only be extended to one minute. When needed, the timeout period can be extended beyond one minute, but it is limited by the requirements of wireless communication module 307a.

[0131] The extension of the timeout period can be predetermined based on instructions from the user or administrator of cellular router 300. In another example, if the number of stop commands sent by router MCU 306 has reached the stop - command send threshold (HST), and router MCU 306 still has not received a response from SIM library MCU 314, then router MCU 306 interrupts the transmission of the stop command to wireless communication module 307a. One of the reasons for interrupting the transmission of the stop command after reaching HST is to reduce the load on router MCU 306 because wireless communication module 307a only accepts multiple stop commands within a specific time period, such as ten stop commands within eight seconds. Depending on the model of wireless communication module 307a, it can ignore incoming stop commands after reaching HST. In some models of wireless communication module 307a, after reaching HST, wireless communication module 307a will reset the corresponding SIM card. The value of HST depends on the specifications of the wireless communication module and can vary for different wireless communication modules. The time interval between stop commands to be sent and the number of stop commands to be sent can be predetermined based on instructions from the user or administrator of cellular router 300. In one embodiment, the time interval between two consecutive stop messages is no longer than two seconds.

[0132] Figure 4B The depicted example sequence diagram shows the steps and events of a scenario associated with the present invention. Associated with Figure 4ACompared with the example sequence diagram shown, before the router MCU 306 receives the modified response, multiple modified requests 411a-g are sent instead of just request 402.

[0133] In this case, for illustrative purposes, the router MCU 306 sends a modified request 411a after receiving request 410. If a modified response from the SIM library MCU 314 is not received before the time threshold expires, the router MCU 306 sends a modified request 411b. The time threshold is a time value ranging from one hundred milliseconds to two seconds. For ease of reading, we will hereinafter refer to this time threshold as the modified request resent time threshold (MRRTH). The lower the MRRTH, the earlier the router MCU 306 sends a modified request. As time goes on, when the next MRRTH is reached and a modified response from the SIM library MCU 314 has still not been received before expiration, the router MCU 306 sends a modified request 411c. The router MCU 306 continues to send modified requests 411 to the SIM library MCU 314 until a modified response 414 is received. For illustrative purposes, the modified response 414 is received after sending modified request 411g. When the modified response 414 is received, the router MCU 306 sends a response 415 based on the modified response 414 and stops sending modified requests 411.

[0134] When sending the modified request 411, the router MCU 306 sends a stop command 413 to the wireless communication module 307a at the time threshold 412, for example, sending stop commands 413a-413c at time thresholds 412a-412c respectively, until a modified response 414 is received or the number of stop commands sent has reached HST.

[0135] In one example, the MRRTH is forty milliseconds and the time threshold is eighty milliseconds. Thus, the router MCU 306 sends a modified request every forty milliseconds and a stop command every eight milliseconds until a modified response 414 is received or the number of stop commands sent has reached HST. There is no limitation that the MRRTH must be forty milliseconds. For example, a user, administrator, or manufacturer can set the MRRTH in the range from one millisecond to one thousand milliseconds.

[0136] Preferably, the modified request 411 is transmitted from the router MCU 306 using UDP transmission. Compared with TCP, using UDP to transmit the modified request 411 causes less latency. If the modified request 411 is transmitted to the SIM library MCU 314 using TCP transmission.

[0137] When the SIM library MCU 314 receives the first modified request 411, the SIM library MCU 314 unpacks the modified request 411 to obtain the request and then transmits the request to the corresponding SIM card. Then, the corresponding SIM card receives the request and generates a response to the SIM library MCU 314. The SIM library MCU 314 then encapsulates the response and transmits the modified response 414 to the router MCU 306 according to the Figure 2B format shown.

[0138] When the SIM library MCU 314 receives more than one modified request 411, the SIM library MCU 314 ignores the modified requests received after receiving the first modified request. For illustrative purposes, the modified request 411b is the first modified request received by the SIM library MCU 314. Then, the SIM library MCU 314 will ignore the modified requests 411a, 411c-g. In one example, the modified requests 411a-g are embedded with numbers for indicating the sequence, so the SIM library MCU 314 can use the numbers to determine that the modified requests 411a and 411c-g are encapsulated requests 410.

[0139] Then, the SIM library MCU 314 transmits the unpacked request from the modified request 411b to the corresponding SIM card. The SIM card then generates a response to the request unpacked from the modified request 411b and transmits the response to the SIM library MCU 314. Then the SIM library MCU 314 encapsulates the response and transmits the modified response 414 following the Figure 2B format shown to the router MCU 306.

[0140] In one example, the modified response 414 is transmitted using TCP. In another example, the modified response 414 is transmitted using UDP. The router MCU 306 then unpacks the modified response 414 and transmits the response 415 to the wireless communication module 307a. In one example, when the modified response 414 is transmitted using UDP, multiple duplicate modified responses 414 are sent to increase the probability that the router MCU 306 receives at least one modified response 414. Since the SIM library MCU 314 can be connected to multiple cellular routers 300 simultaneously, the SIM library MCU 314 can process multiple modified requests from multiple cellular routers 300 and send multiple modified responses to multiple cellular routers 300. Therefore, issuing multiple modified responses encapsulating the same response may cause the SIM library MCU 314 to be overloaded and have a higher processing delay.

[0141] There are many different types and models of wireless communication modules available in the market. These wireless communication modules may perform differently and may have different technologies for communicating with the SIM card. For some wireless communication modules, the stop command only applies to FBR. For requests with less than five bytes in the header byte, the stop command may not apply. In Figure 5A In the embodiment of the sequence diagram of the instance, when the size of the request from the wireless communication module 307a is less than five bytes long, the router MCU 306 uses an interrupt signal to reset the timeout period. The interrupt signal is a serial interrupt of the serial communication following the UART protocol between the router MCU 306 and the wireless communication module 307. When the interrupt signal is sent through the serial communication, it can be independent of Figure 4A and Figure 4B the stop command described in. For example, the interrupt signal can be used sequentially with the stop command to further increase the waiting time of the wireless communication module 307a. In another instance, the interrupt signal and the stop command are used in a mixed order.

[0142] When the wireless communication module 307 receives the interrupt signal, the wireless communication module 307a will consider that the request previously transmitted to the corresponding SIM card is incorrect. Therefore, the wireless communication module 307a generates a new request and then transmits the new request, and the new request saves the same content as the previous request.

[0143] After the wireless communication module 307a transmits the request 501a, the router MCU 306 receives the request 501a and modifies the request 501a into a modified request 502a according to the Figure 2B format shown. The router MCU 306 then transmits the modified request 502a to the SIM library MCU 314.

[0144] For illustrative purposes, the time threshold is eighty milliseconds, and the wireless communication module 307a will wait for one hundred and twenty milliseconds before resetting the corresponding SIM card. When the router MCU 306 has reached the eighty-millisecond time threshold 506a and has not received a response from the SIM library MCU 314, the router MCU 306 will interrupt the signal 503a and transmit it to the wireless communication module 307a. When the wireless communication module 307a receives the interrupt signal 503a, the wireless communication module 307a sends a request 501b because the wireless communication module 307a may think that the request 501a is incorrect and has not been correctly received by the corresponding SIM card. After the wireless communication module 307a has transmitted the request 501b, the wireless communication module 307a will wait for a response to arrive within one hundred and twenty milliseconds. Similarly, when the router MCU 306 has reached an additional eighty-millisecond time threshold 506b and has not received a response from the SIM library MCU 314, the router MCU 306 repeats the previously disclosed process and sends an interrupt signal 503b to the wireless communication module 307a. The wireless communication module then sends a request 501c.

[0145] The router MCU 306 receives a response from the SIM library MCU 314. The router MCU 306 sends an interrupt signal 513 at each time threshold 516, for example, sending interrupt signals 513a - 513b at time thresholds 516a - 516b. Over time, the router MCU 306 does not transmit to the wireless communication module 307a until a response is received or the number of interrupts sent has reached the break sent threshold (BST). The preferred time period of the BST that can be transmitted from the router MCU 306 to the wireless communication module 307a can be predetermined based on instructions from a user or an administrator of the cellular router 300. Throughout the preferred time period, whenever the router MCU 306 approaches the time threshold, the router MCU 306 sends an interrupt signal to the wireless communication module 307a.

[0146] The requests 501b - c are received by the router MCU 306 and then discarded. One of the reasons for discarding the requests 501b - c is that since the requests 501b - c hold the same content as the request 501a, and the request 501a has already been transmitted from the router MCU 306 using a reliable connection such as TCP as the modified request 502a, transmitting further requests 501b - c may result in a relatively high processing delay for the router MCU 306 and the SIM library MCU 314.

[0147] For example purposes, the modified response 504 is received by the router MCU 306 after receiving the request 501c. The modified response 504 is in Figure 2Bis received in the format shown and is a response to request 501a. After receiving the modified response 504, the router MCU 306 stops sending further interrupt signals and sends response 505 to the wireless communication module 307a based on the modified response 504.

[0148] As compared with Figure 5A where the router MCU 306 only sends the modified request 502a before receiving the modified response, in Figure 5B multiple modified requests 512a - g are sent. In this case, for illustrative purposes, the router MCU 306 sends the modified request 512a after receiving the received request 511a. If a modified response from the SIM library MCU 314 is not received before the first MRRTH expires, the router MCU 306 sends the modified request 512b.

[0149] Over time, when at the next MRRTH and a modified response from the SIM library MCU 314 is still not received before expiration, the router MCU 306 will send additional modified requests, such as modified requests 512c - g, until the response 515 is received. The content of the modified requests 512b - g is the same as the content of the modified request 512a because the modified requests 512b - g are encapsulated requests 511a. In one instance, requests 511b - c are received by the router MCU 306 and then discarded because the content of requests 511b - c should be the same as the content of request 511a.

[0150] For example purposes, the modified response 514 is received after sending the modified request 512g. Then, the router MCU 306 will send response 515 to the wireless communication module 307a based on the modified response 514 and stop sending further modified requests 512.

[0151] Preferably, due to the reasons previously explained in connection with Figure 4B the modified requests 512 are transmitted from the router MCU 306 using UDP transport. When the SIM library MCU 314 receives more than one modified request 512, the SIM library MCU 314 ignores the modified requests received after receiving the first modified request. Referring to the process previously explained in connection with Figure 4B where each modified request 512 is embedded with a number, the SIM library MCU 314 uses the number to determine the first received modified request 512a from the remaining modified requests. The modified response 514 is a response to the request in the earliest received modified request 512 from the SIM library MCU 314.

[0152] In a variant example, requests 511b-c are not discarded. Then, the modified requests encapsulate the most recently received requests. For example, modified request 512a-c encapsulates request 511a; modified request 502d-f encapsulates request 511b; modified request 502g encapsulates request 511c. By encapsulating the most recent requests, the modified requests will be more up-to-date.

[0153] When sending modified request 512, router MCU 306 periodically sends interrupt signal 513 to wireless communication module 307a at time threshold 516 until a modified reply 514 is received or the number of interrupts sent has reached BST.

[0154] In an alternative, cellular router 300 and communication device 320 can use Short Message Service (SMS) to register with and communicate with each other. In another alternative, cellular router 300 and communication device 320 can use audio signaling to register with each other. A voice call can be established between the cellular router and the communication device. Then, data can be transmitted and received between the cellular router and the communication device in the form of a specific tone. The advantage of using SMS and / or voice calls to register and communicate between the cellular router and the communication device is that most valid SIM cards can be used by the cellular router to connect to a wireless network. When the cellular router and the communication device are not in the same region or country, roaming services can be used to establish a connection. After the cellular router establishes a connection to the wireless network, the cellular router can then use SMS and / or voice calls to connect to the communication device.

[0155] Figure 8 A network diagram according to an embodiment of the present invention is shown. Cellular router 800 can be similar to cellular router 300 or cellular router 330. In a variant example, cellular router 800 may not have a remote data port. Cellular router 800 has a plurality of wireless communication modules to allow cellular router 800 to communicate with SIM directory server 804 and SIM library 805 via interconnect network 803. The interconnect network can be the Internet or a combination of public and private networks. Each wireless communication module is coupled to one or more antennas and is capable of communicating with a wireless communication network such as a cellular network. There is no limit to the number of wireless communication modules. SIM library 805 can be communication device 320 such that SIM library 805 has Figure 3B the hardware components shown.

[0156] Figure 9 A sequence according to multiple embodiments of the present invention is shown. It should be viewed in conjunction with Figure 8 for Figure 9. For ease of reading, SIM library 805a and 805b are SIM library A and SIM library B respectively. In steps 910 and 912, SIM directory server 804 communicates with SIM library A and SIM library B respectively. There is no limit to the number of SIM libraries that SIM directory server 804 can communicate with. For example, SIM directory server 804 can communicate with one SIM library or twenty SIM libraries. Nor is it required that all SIM libraries must communicate simultaneously. For example, SIM directory server 804 can first communicate with SIM library B, and then communicate with SIM library B again one minute later. Then, in steps 911 and 913 respectively, SIM card availability information is sent from SIM library A and SIM library B to SIM directory server 804. A more detailed description of steps 910 - 913 will be provided below with reference to Figure 3.

[0157] It is possible that after SIM directory server 804 communicates with a SIM library, the SIM cards in the SIM library can be used by a cellular router or reserved by another SIM directory server. Therefore, SIM directory server can periodically communicate with SIM library A and SIM library B to obtain updated SIM card availability information. In a variant, in the case where the SIM card availability information changes, the corresponding SIM library can actively communicate with SIM directory server 804.

[0158] Preferably, SIM directory server 804 has updated information on the SIM card information in SIM library A and SIM library B. This enables SIM directory server 804 to identify the SIM card that is suitable or most suitable for a cellular router such as cellular router 800 when a request to use a SIM card is received from cellular router 800 in step 920. In step 921, SIM directory server 804 selects a SIM card from one of SIM library A and SIM library B. SIM directory server 804 responds with SIM card connection information that allows cellular router 800 to communicate with the SIM card in one of SIM library A and SIM library B. A more detailed description of steps 920 - 921 will be provided below with reference to Figure 11 Provide a more detailed description of steps 920 - 921.

[0159] For example only, the SIM library A stores the selected SIM card. At step 922, the cellular router 800 sends one or more requests to the SIM library A to communicate with the selected SIM. In a more detailed description, the one or more requests are encapsulated in a datagram, and then the datagram is encapsulated in a network frame or packet, such as an Internet Protocol (IP) packet. When the SIM library A receives the request through one of its network interfaces (such as network interface 317), the processing unit (such as processing unit 312) of the SIM library A will process the request and extract the SIM card request originating from the cellular modem of the cellular router 800. Then, the processing unit relays the extracted SIM card request to the selected SIM card. When the selected SIM card receives the extracted SIM card request, the selected SIM card can respond with a valid response. The selected SIM card may also respond with an error message or reject the request. Then, the processing unit relays the response, error message or rejection to the network interface. Then, at step 923, the network interface sends the response, error message or rejection to the cellular router 800 through the network. Preferably, the response, error message or rejection is encapsulated in a datagram, and then the datagram is encapsulated in a network frame or packet, such as an IP packet.

[0160] The processing unit of the cellular router 800 can de-encapsulate the response, error message or rejection from the network frame or packet, and then forward the response, error message or rejection to the cellular modem. Then, the cellular modem in the cellular router 800 can use the response accordingly. For example, the cellular modem can perform authentication with the cellular network based on the response. In another example, the cellular modem can send and receive wireless data based on the response. Since the communication between the cellular modem and the selected SIM card is encapsulated in network frames and packets, the cellular modem and the selected SIM card can even communicate through the network.

[0161] In another embodiment, the cellular router 800 does not communicate directly with the SIM library. The SIM directory server 804 relays messages, requests, responses, error messages, and rejections between the SIM library and the cellular router 800. For example, in step 931, the cellular router 800 sends a request to the SIM directory server 804, and then the SIM directory server 804 forwards the request to the SIM library that holds the selected SIM card. For illustrative purposes only, SIM library B holds the selected SIM card. Thus, in step 932, the SIM directory server 804 forwards the request to SIM library B. When the selected SIM card answers with a response, error message, or rejection, in step 933, SIM library B forwards the answer to the SIM directory server 804. Then, in step 934, the SIM directory server 804 forwards or relays the answer to the cellular router 800. Compared to the embodiment shown in steps 920 - 923, the benefits of this embodiment that uses the SIM directory server 804 for relaying include higher security and easier management. However, the disadvantages include longer latency.

[0162] In another embodiment, the cellular router 800 does not communicate directly with the SIM library. When a request is received from the cellular router 800 in step 941, the additional SIM directory server 804 may not know which SIM cards are available. The request may include a SIM card request. In steps 942 and 943, the SIM directory server 804 requests SIM card availability and almost simultaneously forwards multiple requests based on the request received in step 941 to SIM library A and SIM library B respectively. One of the benefits of sending multiple requests to SIM library A and SIM library B almost simultaneously is that it reduces the waiting time in case one of the requests is not successfully received by the corresponding SIM library or the SIM libraries do not operate in sequence. One of the disadvantages of sending multiple requests to SIM library A and SIM library B almost simultaneously is that it consumes more resources. In step 944, SIM library A sends a response in response to the request received in step 942. Similarly, in step 945, SIM library B sends a response in response to the request received in step 943. When the responses in steps 944 and 945 both provide SIM card availability information, the SIM directory server 804 can select one SIM card availability information to forward to the cellular router 800. Thus, only one SIM card is selected and used by the cellular router 800. For example, the SIM directory server 804 selects the SIM card availability information embedded in the response received from SIM library A in step 944, and in step 946, the SIM directory server 804 forwards the SIM card availability information to the cellular router 800.

[0163] Regarding the SIM card availability information received from SIM library B in step 945, the processing unit of the SIM directory server 804 may not further use it or use it later for the cellular router 800 or another cellular router.

[0164] Figure 10 A more detailed process of steps 910 - 911 and steps 912 - 913 is shown. In process 1001, the SIM directory server 804 selects a SIM library to communicate with. There are countless ways to select a SIM library. For example, the SIM directory server 804 can select a SIM library based on the time period of the last communication. In another instance, the SIM directory server 804 can select a SIM library periodically. In another instance, the SIM directory server 804 can select a SIM library after receiving a connection or connection termination request from a cellular router. In process 1002, the SIM directory server 804 sends a message to the selected SIM library to collect status and / or indicate the selected SIM library. For illustrative purposes, the selected SIM library is SIM library B. In one instance, the SIM directory server 804 can collect SIM card availability information. The SIM card availability information can include: the number of available SIM cards, the number of SIM cards in use, the status of one or more SIM cards, the location of one or more SIM cards, the address of one or more SIM cards, the position of one or more SIM cards, and the billing information of one or more SIM cards. In one instance, the SIM directory server 804 can collect information about the connection established with a cellular router using a SIM card in SIM library B. In one instance, the SIM directory server 804 can instruct SIM library B to perform management on one or more SIM cards, including checking the health of the SIM card; disconnecting the connection established between the cellular router and the SIM card; resetting the SIM card electronically; resetting the SIM card mechanically. Process 1001 and 1002 can be performed together using one message or sequentially. In process 1003, the SIM directory server 804 can receive a response from SIM library B. The response can contain the status of SIM library B, the status of one or more SIM cards in SIM library B, the execution result according to the instruction, an error message, and one or more messages received from one or more SIM cards in SIM library B. Based on the response, the processing unit of the SIM directory server 804 can update the database, further instruct SIM library B, and send one or more messages to one or more cellular routers. It is not restricted that SIM library B must send a response to the SIM directory server 804. For example, SIM library B may be disordered and unable to send a response. In another instance, the processing unit of SIM library B can determine not to send a response according to the instructions stored in a non - transitory computer - readable storage medium.

[0165] The database updated in step 1003 can be used as a directory for finding a suitable SIM card. When the cellular router 800 sends a request in step 200, the cellular router 800 may not know which SIM card it should use. Through the database, the processing unit of the SIM directory server 804 can identify the available SIM cards for the cellular router 800. More details of the database will be described in process 1112.

[0166] Figure 11 A more detailed process of steps 920 - 921 is shown. In process 1111, the SIM directory server 804 receives a request to use a SIM card from the cellular router 800. When the cellular router 800 first needs a SIM card to establish wireless communication with a wireless network service provider, the cellular router 800 sends a request to the SIM directory server 804. At this time, the processing unit of the cellular router 800 does not have information on which specific SIM card to use. The processing unit of the cellular router 800 can embed preferences for the SIM card in the request. The processing unit of the cellular router 800 can also embed other information in the request, including the location of the cellular router 800 and other SIM cards that the cellular router 800 is using. The request can be encrypted.

[0167] In a variant, the processing unit of the cellular router 800 can send multiple identical requests to the SIM directory server 804 to increase the reliability of the request received by the SIM directory server 804. There is no restriction on the communication technology or medium used to send the request. For example, the cellular router 800 can send multiple identical requests via DSL communication service, 4G / LTE communication service, and IEEE802.11 wireless network. The processing unit of the SIM directory server 804 can process the first-arrived request among the multiple identical requests and ignore the subsequent-arrived requests among the multiple identical requests.

[0168] In process 1112, the processing unit of the SIM directory server 804 selects a SIM card for the cellular router 800. The selection can be based on the location of the cellular router 800, the wireless communication service providers accessible to the cellular router 800, tariffs, time, date, estimated reliability between the cellular router 800 and the SIM library, the location of the SIM library, and / or usage restrictions. There is no restriction on the location where the selected SIM card must be, unless there is such a selection criterion. For example, the SIM directory server 804 can select a SIM card from one of SIM library A and SIM library B. When there is an additional available SIM library, the SIM directory server 804 can use a SIM card from the additional SIM library.

[0169] More specifically, a SIM card is selected using the database in the SIM directory server 804. Since the database has the availability information of the SIM cards located in the SIM library 805, the processing unit of the SIM directory server 804 can use the database to quickly select a SIM card when a request is received from the cellular router 800. In the database, the stored information related to the SIM card can include the phone number, IMSI, mobile country code (MCC), mobile network code (MNC), the location of the SIM card, the identification of the SIM library storing the SIM card, the IP address of the SIM library, the IP address of the SIM card slot having the SIM card, the tariff, the limited data plan, the data usage, the remaining allowed data usage, the allowed radio technologies, the payment contacts, the subscription code, the allowed geographical areas where roaming charges will not be incurred, and any other information that may help in selecting the SIM card.

[0170] For example, based on the location information of the cellular router 800 in the request, the SIM directory server 804 can select a SIM card that will not incur roaming charges at the location of the cellular router 800.

[0171] Preferably, one of the substantial criteria is the tariff. In one instance, the SIM card with the lowest tariff for the cellular router 800 is selected. For example, the cellular router 800 operates in Los Angeles. The SIM directory server 804 will select the SIM card with the lowest tariff in Los Angeles for the cellular router 800. For example, when the cellular router moves from Los Angeles to Las Vegas, another SIM card can be selected to achieve the lowest tariff.

[0172] In another instance, based on one or more cellular networks found by the cellular router 800 and sent to the SIM directory server 804, the SIM directory server 804 can select a SIM card whose MCC and MNC match one of the one or more cellular networks. In a variant, the SIM directory server 804 can use different criteria to select the SIM. For example, in addition to based on the location of the cellular router 800, the SIM directory server 804 can select the SIM card based not only on the location of the cellular router 800 but also on the remaining allowed data usage of the SIM card.

[0173] The information of the selected SIM card can be obtained from the database of the SIM library storing the selected SIM card. Before selecting the SIM card, the information can also be provided to the SIM directory server 804. For example, the information can be stored in a database locally accessible to the SIM directory server 804. Once the SIM card is selected, the SIM directory server 804 can obtain the information from the database. The information can be used to facilitate the selection.

[0174] In a variant example, after selecting the SIM card, the SIM directory server 804 may verify whether the selected SIM card is indeed available. The SIM directory server 804 may send a request to the SIM library storing the selected SIM card for verification. In one instance, the SIM library will send a request to the running SIM library storing the selected SIM card. Then, the SIM library will reply to the request of the SIM directory server 804.

[0175] In process 1113, the SIM directory server 804 replies to the request received in process 1111 with connection information. The SIM card connection information may include the identity of the SIM library, the identity of the selected SIM card, the IMEI of the selected SIM card, the publicly reachable address of the SIM library storing the selected SIM card, the publicly reachable address of the selected SIM card, usage restrictions, and / or verification information. For example, the IP address of the SIM library storing the selected SIM card may be included in the SIM card connection information. In another instance, a security token with a time limit is sent to both the cellular router 800 and the SIM library. Then, the cellular router 800 will have to use the security token to verify with the SIM library within the time limit.

[0176] There is no restriction on the medium and technical communication for the cellular router 800 to send a request to use the SIM card. For example, the request in process 1111 may be sent by the cellular router 800 through an Internet connection or a dedicated connection. The request may also be sent through a wireless connection or a wired connection. In one instance, the request is sent through an ADSL connection by checking through the network interface 310 of the cellular router 800. In another instance, the request is sent through one of the wireless communication modules in the wireless communication module 307, and the connection information embedded in the reply in process 1113 is used for another wireless communication module in the wireless communication module 307. For example, the wireless communication module is the wireless communication module 307a and the other wireless communication module is the wireless communication module 307b. The wireless communication module 307a for sending the request may establish a connection based on the locally available SIM card in the cellular router 800. Using the locally available SIM card may incur roaming charges or higher tariffs. Therefore, the use of the wireless communication module 307a is restricted until the wireless communication module 307b can be used. For example, the wireless communication module 307a may only be used for communicating with the SIM directory server 804 and the SIM library 805. In a variant example, there is no restriction on the use of the wireless communication module 307a.

[0177] In one embodiment, after a wireless communication module in the wireless communication module 307 has successfully established a connection to the Internet, the cellular router 800 will repeat (i) steps 920 to 923, (ii) steps 931 - 934, or (iii) steps 941 - 946 for another wireless communication module. For example, after the wireless communication module 307a has established an Internet connection using the SIM card connection information from the SIM library 805, the processing unit of the cellular router 800 can use the wireless communication module 307a to execute steps 931 - 934 to obtain the SIM card connection information so that the wireless communication module 307b can connect to the Internet. The SIM card connection information for the wireless communication module 307b is sourced from a SIM card located in one of the SIM libraries.

[0178] In a variant, the SIM library can have one or more wireless communication modules. If the SIM card is operable, the processing unit of the SIM library can use one or more wireless communication modules to test the SIM card. This avoids the situation where the SIM directory server 804 assigns disordered SIM cards to the cellular router. In a variant, the processing unit of the SIM library can communicate with the SIM card for testing without using a wireless communication module. In a variant, the SIM directory server can issue a test instruction to the SIM library to test the SIM card.

[0179] In a variant, the SIM directory server can have one or more wireless communication modules. If the SIM card in the SIM library is operable, the processing unit of the SIM directory server can use one or more wireless communication modules to test the SIM card. This avoids the situation where the SIM directory server 804 assigns disordered SIM cards to the cellular router. In a variant, the processing unit of the SIM directory server can communicate with the SIM card for testing without using a wireless communication module.

[0180] Figure 12 The basic block diagram of an exemplary SIM directory server according to an embodiment of the present invention is shown. The SIM directory server 1210 includes a data bus 1208, a memory 1201, a processing unit 1202, a storage unit 1203, and a network interface 1207. The processing unit 1202 is directly connected to the memory 1201.

[0181] The processing unit 1202 executes program instructions or code segments to implement the embodiment of the SIM directory server of the present invention.

[0182] Figure 13 The flowchart of a process executed according to an embodiment of the present invention is shown. It should be considered in conjunction with Figure 8 viewed in Figure 13When a cellular router moves from one area to another, roaming charges for using a non-local SIM card may be imposed. In such a case, the tariff for using another SIM card from the SIM library may be lower than that of the SIM card being used. The SIM card being used can be saved in the cellular router or the SIM library.

[0183] In process 1301, multiple connections are established using SIM card connection information sourced from SIM cards saved in one or more SIM libraries by the same or different wireless service providers. Multiple connections can be established respectively through multiple wireless communication modules, such as wireless communication module 307a and wireless communication module 307b. The present invention is not limited to two wireless communication modules. There can be five, ten, fifty, one hundred or even more wireless communication modules. There is also no limit to the number of connections.

[0184] In process 1302, the processing unit of the cellular router 800 determines whether one or more connections need to be disconnected. One reason for disconnecting the connection is the tariff. Another reason is the location of the cellular router 800. Still another reason is reaching the maximum data volume allowed within a period of time. The processing unit of the cellular router 800 can also disconnect the connection based on instructions received from the user, administrator or remote server. If there is no need to disconnect any of the established connections, the process stops at process 1303. For illustrative purposes only, the processing unit of the cellular router 800 determines that the connection established using the wireless communication module 307a should be disconnected.

[0185] In process 1304, the processing unit of the cellular router 800 instructs the wireless communication module 307a to disconnect the connection. After disconnection, the wireless communication module 307a can then be used to establish a new connection.

[0186] In process 1305, the processing unit of the cellular router 800 requests SIM card availability information by sending a request to the SIM directory server 804 via the wireless communication module 307b and a second connection. It is not restricted to only allowing the use of the wireless communication module 307b. When there are more connections, one or more connections can be used to send the request. For example, if a third wireless communication module has established a connection or a connection is established through a network interface using an Ethernet cable, that connection can be used.

[0187] In process 1306, the processing unit of the cellular router 800 receives a reply from the SIM directory server 804. The reply can encapsulate the first SIM card connection information, which can include the first SIM library and the address of the first SIM card selected by the processing unit of the SIM directory server 804. For illustrative purposes, the first SIM card is located at the SIM library 805a.

[0188] In process 1307, the processing unit of the cellular router 800 contacts the SIM library 805a to obtain a response from the first SIM card. In process 1308, the processing unit of the cellular router 800 processes the response and instructs the wireless communication module 307a to establish a new connection. Then, the processing unit of the cellular router 800 can use the new connection to communicate with other hosts and servers, including the Internet and email servers.

[0189] Accordingly, after process 1308, the remaining multiple connections and the new connection can be used for communication. In one example, the connections can be aggregated together to form an aggregated connection. The processing unit of the cellular router 800 can use the aggregated connection to communicate with the SIM directory server 804 and connect to other hosts and servers.

[0190] After process 1308, process 1302 will be repeated to determine whether other connections should be disconnected. In a variant, this embodiment can end after process 1308 without returning to process 1302.

[0191] There is no limitation that the MCU and the interface circuit must be discrete components. If the processing unit is capable of providing the functions of the MCU and / or the interface circuit, the MCU and the interface circuit can be omitted. For example, one processing unit can be used to implement the MCU 314 and the processing unit 312. In another example, if the MCU 306 or the MCU 314 is capable of communicating with the SIM card in the SIM slot, the interface circuit can be omitted. In another example, if the processing unit is capable of communicating with the SIM card in the SIM slot, the MCU and the interface circuit can be omitted.

[0192] In one embodiment, the communication between the cellular router (such as cellular routers 330 and 801) and the SIM library or the SIM directory server is redundantly executed to improve reliability. For example, multiple identical requests and / or responses can be sent. The first received request or response will be used for processing, while the other requests or responses will be discarded.

[0193] The present invention is not limited to the cellular router 111. For example, the cellular router can be replaced by an electronic device that provides network functionality to other devices or only to itself. The electronic device can send information to another electronic device via the Internet. For example, the electronic device can be a light bulb with an Internet connection and a communication device in a vehicle.

Claims

1. A wireless communication method implemented on a wireless communication device, comprising: a. Sending a first request to a remote server; b. Receiving a first response from the remote server; wherein the first response includes SIM card information of a first subscriber identity module (SIM) card; wherein the selection of the first SIM card is partially based on a first set of wireless communication networks; wherein the first set of wireless communication networks are wireless communication networks accessible to the wireless communication device; c. Establishing a plurality of wireless connections with at least two of the first set of wireless communication networks; d. When it is determined that one of the plurality of wireless connections needs to be disconnected: i. Disconnecting a first wireless connection established by a first wireless communication module; ii. Sending a request for SIM card availability information to a directory server via a second set of wireless connections established by a second set of wireless communication modules; iii. Receiving a reply corresponding to the request from the directory server; iv. Receiving a second response from a second SIM card from the remote server based on the reply; v. Establishing a third wireless connection via the first wireless communication module based on the second response; wherein the wireless communication device includes a plurality of wireless communication modules; and wherein the wireless communication device communicates with the remote server and the directory server via an interconnected network respectively.

2. The method according to claim 1, wherein the second set of wireless communication modules are one or more wireless communication modules other than the first wireless communication module, the second set of wireless connections may be one or more second wireless connections, and the plurality of wireless connections include the first wireless connection and the second set of wireless connections.

3. The method according to claim 1, wherein step d is to disconnect the first wireless connection based on an instruction received from a user, an administrator, or the remote server.

4. The method according to claim 1, further comprising: After establishing the third wireless connection, ending the execution of all steps.

5. The method according to claim 1, wherein the reply may encapsulate second SIM card connection information, and the second SIM card connection information may include the address of the remote server and the second SIM card selected by the directory server.

6. The method according to claim 1, further comprising: Establishing a plurality of data connections via the second set of wireless connections and the third wireless connection; and Aggregating the plurality of data connections to form an aggregated data connection.

7. The method according to claim 1, wherein disconnecting the first wireless connection is partially based on the location of the wireless communication device, the charges of the first set of wireless communication networks, and / or reaching the maximum data volume allowed within a period of time.

8. The method according to claim 1, further comprising discovering the IP address of the remote server before performing step (a).

9. The method according to claim 8, wherein the discovery is via the directory server.

10. A wireless communication method implemented on a wireless communication device, comprising: a. Sending a first request to a remote server; b. Receiving a first response from the remote server; wherein the first response includes the SIM card information of the first SIM card; c. establish a plurality of wireless connections from at least two of the first set of wireless communication networks; d. when it is determined that one of the plurality of wireless connections needs to be disconnected: i. disconnect the first wireless connection established by the first wireless communication module; ii. send a request for SIM card availability information to a directory server via a second set of wireless connections established by a second set of wireless communication modules; iii. receive a reply corresponding to the request from the directory server; iv. receive a second response from a second SIM card from the remote server based on the reply; v. establish a third wireless connection via the first wireless communication module based on the second response; e. establish a plurality of data connections with the remote server via the second set of wireless connections and the third wireless connection; f. aggregate the plurality of data connections to form an aggregated data connection; g. communicate with the remote server via the aggregated data connection; wherein the wireless communication device includes a plurality of wireless communication modules; and wherein the wireless communication device communicates with the remote server and the directory server respectively via an interconnected network.

11. The method according to claim 10, further comprising: after establishing the third wireless connection, end the execution of all steps.

12. A system for a wireless communication device to establish wireless communication, wherein the wireless communication device includes: at least one processing unit; at least one network interface; a plurality of wireless communication modules; and at least one non-transitory computer-readable storage medium; wherein the non-transitory computer-readable storage medium stores program instructions executable by at least one of the processing units for: a. send a first request to a remote server; b. receive a first response from the remote server; wherein the first response includes the SIM card information of the first SIM card; wherein the selection of the first SIM card is partially based on a first set of wireless communication networks; wherein the first set of wireless communication networks is the wireless communication networks accessible to the wireless communication device; c. establish a plurality of wireless connections with at least two of the first set of wireless communication networks; d. when it is determined that one of the plurality of wireless connections needs to be disconnected: i. disconnect the first wireless connection established by the first wireless communication module; ii. send a request for SIM card availability information to a directory server via a second set of wireless connections established by a second set of wireless communication modules; iii. receive a reply corresponding to the request from the directory server; iv. receive a second response from a second SIM card from the remote server based on the reply; v. establish a third wireless connection via the first wireless communication module based on the second response; and wherein the wireless communication device communicates with the remote server and the directory server respectively via an interconnected network.

13. The system according to claim 12, wherein the second set of wireless communication modules are one or more wireless communication modules other than the first wireless communication module, the second set of wireless connections can be one or more second wireless connections, and the plurality of wireless connections includes the first wireless connection and the second set of wireless connections.

14. The system according to claim 12, wherein step d is to disconnect the first wireless connection based on an instruction received from a user, an administrator, or the remote server.

15. The system according to claim 12, wherein at least one of the non-transitory computer-readable storage media further includes program instructions executable by at least one of the processing units for: After establishing the third wireless connection, end the execution of all steps.

16. The system according to claim 12, wherein the response can encapsulate second SIM card connection information, and the second SIM card connection information can include the address of the remote server and the second SIM card selected by the directory server.

17. The system according to claim 12, wherein at least one of the non-transitory computer-readable storage media further includes program instructions executable by at least one of the processing units for: Establish a plurality of data connections through the second set of wireless connections and the third wireless connection; and Aggregate the plurality of data connections to form an aggregated data connection.

18. The system according to claim 12, wherein disconnecting the first wireless connection is partially based on the location of the wireless communication device, the charges of the first set of wireless communication networks, and / or reaching the maximum data volume allowed within a period of time.

19. The system according to claim 12, wherein at least one of the non-transitory computer-readable storage media further includes program instructions executable by at least one of the processing units for discovering the IP address of the remote server before performing step (a).

20. The system according to claim 19, wherein the discovery is through the directory server.

Citation Information

Patent Citations

  • System and Methods for Dynamic SIM Provisioning on a Dual-SIM Wireless Communication Device

    US20150304506A1