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

The described system allows for remote management of SIM cards through a cellular router, reducing labor and operational costs by optimizing SIM card usage and minimizing manual intervention.

CN115426646BActive Publication Date: 2025-07-08PISMO LABS TECH
View PDF 6 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

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

Method used

By integrating wireless communication modules and processing units in a cellular router, remote management of SIM cards is realized, including encapsulating and sending requests, waiting for answers, decapsulating answers, and optimizing data transmission through aggregated connections to reduce manual intervention.

Benefits of technology

It reduces labor costs, improves the automation of SIM card management, reduces roaming costs, and improves the flexibility and efficiency of network connections.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115426646B_ABST
    Figure CN115426646B_ABST
Patent Text Reader

Abstract

The present invention discloses a method and system for communication between a cellular router and a communication device. The cellular router first sends a request for SIM card information to the communication device, selects a SIM card from multiple SIM cards, and then sends a request to the SIM card. After receiving the response sent by the SIM card, the communication device sends a response to the cellular router. The communication device mentioned here is a SIM directory server.
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 the application number 201880001089.X and the title "Method and System for Using a Remote Subscriber Identity Module at a Device". Technical Field

[0002] The present invention generally relates to the field of using subscriber identity module (SIM) cards at electronic devices, and more specifically to the field of network communication using multiple remote SIM cards. Background Art

[0003] The ability to allow a device to communicate with other devices such as a web server, Internet of Things (IoT), autonomous vehicles, and routers via a cellular network is crucial for many activities. Using a subscriber identity module (SIM) card is crucial for transmitting and receiving data via a cellular network. To deploy and replace the SIM card on such a device, physical access to the device and the SIM card may be required and it will increase expensive labor costs. In addition, the logistics involved in, for example, re-coding the use of the SIM card, selecting the SIM card with the lowest tariff, and determining when to replace the SIM card will increase additional labor costs. There is a desire for methods and systems that can reduce labor costs and tariff costs. Summary of the Invention

[0004] The present invention discloses a method and system for communication 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; at least one non-transitory computer-readable storage medium for storing program instructions executable by the at least one processing unit to receive a first request from the first wireless communication module. Then, the cellular router encapsulates the first request in a first modified request and sends the first modified request to a 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 de-encapsulates the first modified response to obtain a 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 an embodiment of the present invention, the first modified request includes a SIM identifier.

[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, a second modified request is received through an aggregated end-to-end connection.

[0013] According to an embodiment of the present invention, a 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 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 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 of the steps shown.

[0030] Figure 11 Shows Figure 9 A more detailed process of certain of the 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 shown 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 an embodiment can be described as a process, and the process can be depicted as a flowchart, operation diagram, data flow diagram, structure diagram, or block diagram. Although a flowchart may describe the operations as a sequential process, many operations can be performed in parallel or simultaneously. Additionally, the order of the operations can be rearranged. The process terminates when its operations are completed, but it can have additional steps not included in the figure. The process can correspond to a method, function, program, subroutine, subprogram, etc. When the process corresponds to a function, the termination of the process corresponds to the function returning to the calling function or the main function.

[0036] An embodiment or portions thereof can be implemented by 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 represent 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. The machine-readable medium can be implemented through virtualization and can be a virtual machine-readable medium, including a virtual machine-readable medium in a cloud-based instance.

[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 discs 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 those 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 the 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 a plurality of 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 the 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. In addition, 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, the 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 volatile memory being executed by a processing unit. Such instructions may be read into volatile memory from another computer-readable medium. Execution of the sequences of instructions contained in 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, subprograms, 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 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 consistent with the principles of the present invention. Accordingly, embodiments consistent with the principles of the present invention are not limited to any specific combination of hardware circuitry and software.

[0046] The network interface that may be provided by a node is an Ethernet interface, a Frame Relay interface, an optical fiber 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] The network interface may be implemented by separate electronic components or may be integrated with other electronic components. Depending on the configuration, the network interface may not have a network connection or may have at least one network connection. The network interface may be an Ethernet interface, a Frame Relay interface, an optical fiber 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] A 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] An embodiment or a part thereof can be implemented in a computer data signal, which can be in any suitable form for communicating through a transmission medium such that it can be read by a functional device (e.g., a processing unit) to perform the operations described herein. The computer data signal can include any binary digital electronic signal capable of propagating through the transmission medium, such as an electronic network channel, fiber optic, air, electromagnetic medium, radio frequency (RF) link, etc. Thus, the data signal can be in the form of an electrical signal, an optical signal, a radio frequency, or other wireless communication signals, etc. In some embodiments, a code segment 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. The 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

[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 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 form 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 connect 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 A 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 for viewing 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 external locally accessible cellular network or an interconnection of cellular networks. The external locally accessible network is a home network associated with a local SIM card in an overseas region. The home network can be accessed through 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 through 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 through 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 network 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, wireless networks require 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 use of the first SIM card is stopped. 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 connects to the interconnected network 103 using the SIM card information from the third SIM card. 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 assigned 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 the 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 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 data containing SIM card information to and receives data 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 via 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 authenticates it to the wireless communication network or 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 wireless communication modules of the present invention. For example, Figure 3C is shown in connection with Figure 1B a basic block diagram of an example cellular router 330 identical to 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 housed inside the cellular router or coupled to the cellular router. There is no limit to the number of 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 A 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, which 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 limited 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 a 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 Shows 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 packets in the Ethernet frame to reach their 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 implemented 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 in 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 attached with 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 into one or more Ethernet frames and sent to the SIM library MCU 314.

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

[0095] There is no restriction 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 restriction on the communication technology used to transmit and receive 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 receiving party and / or the sending party 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 transferring 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 a 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, in 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, the SIM library MCU 314 embeds one or more IP packets in one or more Ethernet frames and sends them 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, the one or more Ethernet frames are de-embedded and the 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 seconds or 1 second respectively). This configuration is provided to improve the response time. In one example, when the wireless communication module 307a needs the 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 the need to convert the voltage, then 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 identifier 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 to 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 to communicate 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 is also applicable 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 the 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 require 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, step 606 can be performed faster when steps 602 - 605 have been executed compared to when steps 602 - 605 have not been previously executed. 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 the 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, when the ATR has been longer than a first time period, the ATR is discarded. The first time period should not be less than one minute. A 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, when the SIM card is in use 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, 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, 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 in use 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 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 body. Therefore, the full 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 passes 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 favored over 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 a 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 process previously disclosed 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 time threshold 403c (i.e., 2.4 seconds, i.e., 0.8 seconds after sending the stop command 404b).

[0130] In Figure 2BReceive response 405 in the format shown. After receiving response 405, the router MCU 306 then extracts the SIM card information from response 405 and sends the SIM card information to the wireless communication module 307a in response 406. Since response 406 has been sent to the wireless communication module 307a, the router MCU 306 stops transmitting the stop command to the wireless communication module 307a because there is no longer a need to extend the timeout period of response 405. Then, the 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 the router MCU 306 approaches the time threshold again. In this case, whenever the router MCU 306 approaches its time threshold without receiving a response from the SIM library MCU 314, the router MCU 306 transmits a stop command to the wireless communication module 307a to reset the timer and attempt to extend the timeout period of the 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 the 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 the wireless communication module 307a.

[0131] The extension of the timeout period can be pre - determined based on instructions from the user or administrator of the cellular router 300. In another example, if the number of stop commands sent by the router MCU306 has reached the stop - command send threshold (HST), and the router MCU 306 still has not received a response from the SIM library MCU 314, then the router MCU 306 interrupts the transmission of the stop command to the wireless communication module 307a. One of the reasons for interrupting the transmission of the stop command after reaching the HST is to reduce the load on the router MCU 306 because the wireless communication module 307a only accepts multiple stop commands within a specific time period, such as accepting ten stop commands within eight seconds. Depending on the model of the wireless communication module 307a, it can ignore incoming stop commands after reaching the HST. In some models of the wireless communication module 307a, after reaching the HST, the wireless communication module 307a will reset the corresponding SIM card. The value of the HST depends on the specifications of the wireless communication module and can vary for different wireless communication modules. The time interval between the stop commands to be sent and the number of stop commands to be sent can be pre - determined based on instructions from the user or administrator of the 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 refer to this time threshold as the modified request resent time threshold (MRRTH) hereinafter. The lower the MRRTH, the earlier the router MCU 306 sends a modified request. As time passes, 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 a 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 of 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 delay. 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 fewer than five bytes in the header, 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 the request previously transmitted to the corresponding SIM card to be 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 transmission 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 another 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, such as 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 for the BST that can be transmitted from the router MCU 306 to the wireless communication module 307a can be predetermined based on instructions from the user or 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 between 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 2BIt is 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] 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 no modified response is received from the SIM library MCU 314 before the first MRRTH expires, the router MCU 306 sends the modified request 512b.

[0149] Over time, when at the next MRRTH and no modified response is still received from the SIM library MCU 314 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 MCU306 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, for the reasons previously explained in connection with Figure 4B the modified requests 512 are transmitted from the router MCU 306 using UDP transmission. 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 the modified request 512, the router MCU 306 periodically sends an interrupt signal 513 to the wireless communication module 307a at time threshold 516 until a modified response 514 is received or the number of interrupts sent has reached BST.

[0154] In an alternative, the cellular router 300 and the communication device 320 can use the Short Message Service (SMS) to register with and communicate with each other. In another alternative, the cellular router 300 and the 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 with 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 the 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. The cellular router 800 can be similar to the cellular router 300 or the cellular router 330. In a variant example, the cellular router 800 may not have a remote data port. The cellular router 800 has a plurality of wireless communication modules to allow the cellular router 800 to communicate with a SIM directory server 804 and a SIM library 805 via an interconnected network 803. The interconnected 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. The SIM library 805 can be the communication device 320 such that the 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 to Figure 9. For ease of reading, SIM libraries 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 a 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, SIM library A stores the selected SIM card. At step 922, cellular router 800 sends one or more requests to 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 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 SIM library A will process the request and extract the SIM card request originating from the cellular modem of 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. Next, at step 923, the network interface sends the response, error message, or rejection to cellular router 800 over 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 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 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 over 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 using 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 respective 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 use it further 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 numerous 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 request for connection or connection termination 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 connections established with a cellular router using one 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 cards; disconnecting the connections established between the cellular router and the SIM cards; resetting the SIM cards electronically; resetting the SIM cards 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 instructions, 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 looking up 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 through a DSL communication service, a 4G / LTE communication service, and an IEEE802.11 wireless network. The processing unit of the SIM directory server 804 can process the first-arriving request among the multiple identical requests and ignore the subsequent-arriving 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, the tariff, the time, the date, the 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 availability information of 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 a phone number, IMSI, mobile country code (MCC), mobile network code (MNC), location of the SIM card, identification of the SIM library storing the SIM card, IP address of the SIM library, IP address of the SIM card slot having the SIM card, tariff, limited data plan, data usage, remaining allowed data usage, allowed radio technologies, payment contacts, subscription code, geographical areas where roaming charges are not incurred, and any other information that may be helpful for 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 does not incur roaming charges at the location of the cellular router 800.

[0171] Preferably, one of the essential criteria is the tariff. In one example, the SIM card with the lowest tariff for use by 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 example, 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 a 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 the SIM card is selected, 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 identification of the SIM library, the identification 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 authenticate 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 using an ADSL connection through the check of 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 be used only 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 modules 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 perform 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 unordered 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 unordered 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 A 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 an embodiment of the SIM directory server of the present invention.

[0182] Figure 13 A 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 13。When a cellular router moves from one area to another, roaming charges for using a non-local SIM card may be imposed. In such cases, 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 through the same or different wireless service providers. Multiple connections can be established separately 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 the 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 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 can provide 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 can communicate with the SIM card in the SIM slot, the interface circuit can be omitted. In another example, if the processing unit can communicate 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 (e.g., 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 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 functions 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 method for communication between a cellular router and a communication device, comprising: a. At the cellular router, sending a first request to the communication device via a first connection established with the communication device by using a first SIM card and a first wireless communication module; b. In the communication device, selecting a second SIM card from a plurality of SIM cards; c. In the communication device, sending the first request to the second SIM card; d. In the communication device, receiving a first response from the second SIM card; e. In the communication device, sending the first response to the cellular router; f. At the cellular router, after receiving the first response, establishing a second connection with the communication device by using the second SIM card and a second wireless communication module; g. At the cellular router, interrupting the first connection and sending a second request to the communication device via the second connection; h. In the communication device, receiving a second response from a third SIM card and sending the second response to the cellular router; and i. At the cellular router, after receiving the second response, establishing a third connection by using the third SIM card and the first wireless communication module; wherein the first request and the second request are requests corresponding to the second SIM card and the third SIM card; wherein the plurality of SIM cards are within the communication device; wherein the selection of the second SIM card and the third SIM card is at least based on connection bandwidth and signal quality; and wherein the cellular router is always connected to the communication device.

2. The method according to claim 1, further comprising: j. At the cellular router, sending a third response to a third wireless communication module; wherein the third wireless communication module is the first wireless communication module or the second wireless communication module; and wherein the third response is the first response or the second response.

3. The method according to claim 1, wherein the first connection is established using Wi-Fi instead of the first SIM card and the first wireless communication module.

4. The method according to claim 1, wherein after the first connection is interrupted, use of the first SIM card is stopped, and the first wireless communication module is reset, restarted, or stopped.

5. The method according to claim 1, wherein a connection established by the first wireless communication module using the third SIM card and a connection established by the second wireless communication module using the second SIM card are bound to form an aggregated data connection.

6. The method according to claim 1, wherein the cellular router receives power from the communication device.

7. The method according to claim 1, wherein the first request includes a SIM card identifier or a SIM card slot identifier.

8. The method according to claim 1, wherein the first request includes a wireless communication module identifier.

9. The method according to claim 1, wherein the first request and the first response are encapsulated in a datagram.

10. The method according to claim 1, further comprising: k. Before the cellular router receives the first response, the cellular router sends one or more stop messages to the second wireless communication module.

11. A communication system, comprising a cellular router and a communication device; Wherein the cellular router includes: At least one first network interface; At least one first main memory; At least one first processing unit; At least one first non-transitory computer-readable storage medium for storing program instructions, the program instructions executable by the at least one first processing unit for: a. Sending a first request to the communication device through a first connection established between the first SIM card and the first wireless communication module and the communication device; b. After receiving the first response, establishing a second connection with the communication device by using a second SIM card and a second wireless communication module; c. Interrupting the first connection and sending a second request to the communication device through the second connection; and d. After receiving the second response, establishing a third connection by using a third SIM card and the first wireless communication module; Wherein the communication device includes: At least one second network interface; At least one second main memory; At least one second processing unit; At least one first non-transitory computer-readable storage medium for storing program instructions, the program instructions executable by the at least one second processing unit for: e. Selecting the second SIM card from multiple SIM cards; f. Sending the first request to the second SIM card; g. Receiving the first response from the second SIM card; h. Sending the first response to the cellular router; and i. Receiving the second response from the third SIM card and sending the second response to the cellular router; Wherein the first request and the second request are requests corresponding to the second SIM card and the third SIM card; Wherein the multiple SIM cards are within the communication device; Wherein the selection of the second SIM card and the third SIM card is at least based on connection bandwidth and signal quality; and Wherein the cellular router is always connected to the communication device.

12. The system according to claim 11, wherein the at least one first non-transitory computer-readable storage medium further stores program instructions for the following operations: j. In the cellular router, sending a third response to a third wireless communication module; Wherein the third wireless communication module is the first wireless communication module or the second wireless communication module; and Wherein the third response is the first response or the second response.

13. The system according to claim 11, wherein the first connection is established using Wi-Fi instead of the first SIM card and the first wireless communication module.

14. The system according to claim 11, wherein after the first connection is interrupted, the first SIM card is stopped from being used, and the first wireless communication module is reset, restarted or stopped.

15. The system according to claim 11, wherein the connection established by the first wireless communication module using the third SIM card and the connection established by the second wireless communication module using the second SIM card are bound to form an aggregated data connection.

16. The system according to claim 11, wherein the cellular router receives power from the communication device.

17. The system according to claim 11, wherein the first request includes a SIM card identifier or a SIM card slot identifier.

18. The system according to claim 11, wherein the first request includes a wireless communication module identifier.

19. The system according to claim 11, wherein the first request and the first response are encapsulated in a datagram.

20. The system according to claim 11, wherein the at least one first non-transitory computer-readable storage medium further stores program instructions for the following operations: k. Before the cellular router receives the first response, sending one or more stop messages from the cellular router to the second wireless communication module.

Citation Information

Patent Citations

  • System and method for using multiple SIM cards limitlessly

    CN105120448A

  • SIM card management method and system

    CN105430636A

  • Cloud SIM card pool system

    CN105554728A

  • Virtual SIM card system and method of using virtual SIM card by mobile terminal

    CN106851617A

  • Multi-region SIM card selection method, system and apparatus, and industrial control computer

    CN107548055A