Method and system for using a remote subscriber identity module at a device
By integrating wireless communication modules and processing units in cellular routers, remote management of SIM card activation and switching is solved, and the problems of complex and costly SIM card management in the prior art are improved, and the automation and efficiency of network connections are improved.
Patent Information
- Application Number
- CN202211111085.1
- 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
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 automation and cost-effectiveness.
By integrating wireless communication modules and processing units in a cellular router, the modified request and reply mechanisms are used to realize the activation and switching of SIM cards remotely managed, reducing the need for physical contact.
It reduces labor costs, improves the automation of SIM card management, reduces roaming costs, and enhances the flexibility and efficiency of network connections.
Smart Images

Figure CN115460582B_ABST
Abstract
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 network communication using a subscriber identity module (SIM) card at an electronic device, and more specifically to 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 vehicle, and router 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 a SIM card on such a device, physical access to the device and the SIM card may be required, which increases costly labor costs. In addition, the logistics involved, such as re-coding the use of the SIM card, selecting the SIM card with the lowest tariff, and determining when to replace the SIM card, adds additional labor costs. There is a need 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. Next, 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, the second modified request is received through an aggregated end-to-end connection.
[0013] According to an embodiment of the present invention, the first modified request is sent through an aggregated end-to-end connection. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] Figure 1A Illustrates a scenario of a communication system according to an embodiment of the present invention.
[0015] Figure 1B Illustrates a scenario of a communication system according to an embodiment of the present invention.
[0016] Figure 2A The depicted flowchart illustrates the process of the communication system according to Figure 1B the communication system shown.
[0017] Figure 2B Illustrates the format of a message encapsulated in the payload of an IP packet according to an embodiment of the present invention.
[0018] Figure 3A Illustrates a basic block diagram of a cellular router according to an embodiment of the present invention.
[0019] Figure 3B Illustrates a basic block diagram of a communication device or SIM library according to an embodiment of the present invention.
[0020] Figure 3C Illustrates the same Figure 1B basic block diagram of a cellular router as the cellular router 101 shown.
[0021] Figure 4A The depicted sequence of examples illustrates the steps and events of a particular scenario associated with the present invention.
[0022] Figure 4B The depicted sequence of examples illustrates the steps and events of a particular scenario associated with the present invention.
[0023] Figure 5A The depicted sequence of examples illustrates the steps and events of a particular scenario associated with the present invention.
[0024] Figure 5B The depicted sequence of examples illustrates the steps and events of a particular scenario associated with the present invention.
[0025] Figure 6 The depicted sequence diagram illustrates the various stages of messages transmitted and received between an example wireless communication module and an example SIM card.
[0026] Figure 7 Shows the structure of messages when transmitting and receiving data using Ethernet according to an embodiment of the present invention.
[0027] Figure 8 Shows a network diagram according to an embodiment of the present invention.
[0028] Figure 9 Shows sequences according to multiple embodiments of the present invention.
[0029] Figure 10 Shows Figure 9 A more detailed process of certain steps shown.
[0030] Figure 11 Shows Figure 9 A more detailed process of certain steps shown.
[0031] Figure 12 Shows a basic block diagram of an exemplary SIM directory server according to an embodiment of the present invention.
[0032] Figure 13 Shows a flowchart of a process executed 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 a useful description for those skilled in the art to implement 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 embodiments can be described as processes, and the processes can be depicted as flowcharts, operation diagrams, data flow diagrams, structure diagrams, or block diagrams. Although a flowchart can describe operations as a sequential process, many operations can be performed in parallel or simultaneously. Additionally, the order of operations can be rearranged. A process terminates when its operations are completed, but it can have additional steps not included in the figures. A process can correspond to a method, function, program, subroutine, subprogram, etc. When a process corresponds to a function, the termination of the process corresponds to the function returning to the calling function or the main function.
[0036] Embodiments or parts thereof can be implemented 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 the 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 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 a processor / processing unit. Non-volatile memory or static memory can be used to store static information and instructions for the processor, as well as various system configuration parameters.
[0039] The storage medium can include a number 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 a processor for execution. For example, the instructions can initially be carried on a magnetic disk of a remote computer. Alternatively, the remote computer can load the instructions into its dynamic memory and send the instructions to a system that runs one or more sequences of the instructions.
[0041] The processing unit can be a microprocessor, a microcontroller (MCU), a digital signal processor (DSP), any combination of those devices, or any other circuit configured to process information. The processing unit executes program instructions or code segments to implement embodiments of the present invention. Additionally, embodiments can be implemented by hardware, software, firmware, middleware, microcode, a hardware description language, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program instructions for performing the necessary tasks can be stored in a computer-readable storage medium. The processing unit can be implemented through virtualization and can be a virtual processing unit, including a virtual processing unit in a cloud-based instance.
[0042] A SIM card is a Subscriber Identity Module (SIM). Those skilled in the art will understand that when referring to a physical SIM, the terms SIM and SIM card can be used interchangeably. It is also common for a SIM to be referred to 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 a processing unit executing one or more sequences of one or more instructions contained in a volatile memory. Such instructions may be read into the volatile memory from another computer-readable medium. Execution of the sequences of instructions contained in the volatile memory causes the processing unit to perform the process steps described herein. In an alternative embodiment, hardwired circuitry may be used in place of or in combination with software instructions to implement the present invention. Accordingly, embodiments of the present invention are not limited to any specific combination of hardware circuitry and software.
[0044] A code segment, such as a program instruction, can represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment can be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. can be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
[0045] Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement a process in accordance with the principles of the present invention. Accordingly, embodiments in accordance 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 can be an Ethernet interface, a Frame Relay interface, a fiber optic interface, a cable interface, a DSL interface, a Token Ring interface, a serial bus interface, a Universal Serial Bus (USB) interface, a FireWire interface, a Peripheral Component Interconnect (PCI) interface, a cellular modem, etc.
[0047] The network interface can be implemented by separate electronic components or can 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 can be an Ethernet interface, a Frame Relay interface, a fiber optic interface, a cable interface, a Digital Subscriber Line (DSL) interface, a Token Ring interface, a serial bus interface, a Universal Serial Bus (USB) interface, a FireWire interface, a Peripheral Component Interconnect (PCI) interface, a cellular modem, etc.
[0048] The network interface can be connected to a wired or wireless access network. The access network can carry one or more network protocol data. The wired access network can be implemented using Ethernet, fiber optic, cable, DSL, frame relay, token ring, serial bus, USB, FireWire, PCI, or any material capable of transmitting information. The wireless access network can be implemented using infrared, High-Speed Packet Access (HSPA), HSPA+, Long-Term Evolution (LTE), WiMax, GPRS, EDGE, GSM, CDMA, WiFi, CDMA2000, WCDMA, TD-SCDMA, Bluetooth, WiBRO, Evolution-Data Optimized (EV-DO); Digital Enhanced Cordless Telecommunications (DECT); Digital AMPS (IS-136 / TDMA); Integrated Digital Enhanced Network (iDEN), or any other wireless technology.
[0049] Embodiments or portions thereof can be implemented in a computer data signal, which can be in any suitable form for communication over a transmission medium such that it is readable for execution by a functional device (e.g., a processing unit) to perform the operations described herein. The computer data signal can comprise any binary digital electronic signal capable of propagating over a transmission medium, such as an electronic network channel, fiber optic, air, electromagnetic medium, radio frequency (RF) link, etc., so the data signal can take the form of an electrical signal, an optical signal, a radio frequency, or other wireless communication signal, etc. In certain embodiments, code segments can be downloaded via a computer network, such as the Internet, an intranet, a LAN, a MAN, a WAN, a PSTN, a satellite communication system, a cable transmission system, etc.
[0050] Figure 1A The context of a communication system according to an embodiment of the present invention is shown. Communication system 120 includes a communication device 114 connected to a cellular router 111 via a connection 112. The cellular router can be a cellular router with cellular connection capabilities.
[0051] The cellular router 111 and the communication device 114 further include a microcontroller unit (MCU) and other related circuits, which are not shown here for simplicity. Figure 1A in the figure.
[0052] The communication device 114 and the cellular router 111 are connected by a connection 112. The connection 112 is used to transmit data containing SIM card information between the communication device 114 and the cellular router 111. One end of the connection 112 is connected to the cellular router 111, and the other end of the connection 112 is connected to the communication device 114. The LDP 117 can be used as the WAN interface of the communication device 114 and is used to send and receive data containing SIM card information. The RDP 116 is used to send and receive data containing SIM card information and can be used as the LAN interface of the cellular router 111.
[0053] The connection 112 can include one or more wires, such as a CAT-5 cable, and can inject power into the CAT-5 cable according to the Power over Ethernet (PoE) standard. The cellular router 111 can use PoE technology to draw power from the communication device 114 through the connection 112.
[0054] In a variant, the cellular router 111 also uses PoE technology to supply power to the communication device 114 through the connection 112. There is no restriction 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 a 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 a 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 restriction that the SIM cards must be issued by the same wireless service provider. In one instance, the SIM cards are issued by five wireless service providers in five different countries. Various SIM card providers allow the cellular router 111 to use different SIM cards according to different needs.
[0057] The communication device 114 has a LAN interface 118 for connecting to one or more hosts and / or nodes to transmit and receive information. For example, the host and / or node forms a LAN with the communication device 114 via the LAN interface 118. The communication device 114 can also be used as an Internet router or gateway for the host and / or node. The number of LAN interfaces 118 is not limited to one. For example, the communication device 114 can have multiple LAN interfaces 118. The LAN interface 118 can be a wired LAN interface, a wireless LAN interface, or a combination of a wired LAN interface and a wireless LAN interface. For example, the LAN interface 118 can be a wired Ethernet interface. In another example, the LAN interface 118 can be an IEEE 802.11-based LAN interface.
[0058] In a variant, the communication device 114 is an Ethernet switch or hub. Then the LDP 117 becomes the LAN interface. The communication device 114 can connect to one or more hosts and / or nodes. The cellular router 111 is used as an Internet router or gateway for the hosts and nodes connected to the communication device 114.
[0059] Figure 1B The scenario of a communication system according to an embodiment of the present invention is shown. The communication system 100 includes a cellular router 101 and a communication device 105 connected via an interconnect network 103. The cellular router 101 includes one or more network interfaces 102, multiple wireless communication modules 109, and multiple antennas 107. The cellular router 101 can use the wireless communication modules 109 and antennas 107 to connect to one or more wireless communication networks or a cellular network associated with the base station 108. The communication device 105 includes a network interface 104 and a SIM slot 106. The SIM slot 106 can represent one or more SIM cards for the communication device 105. The cellular router 101 and the communication device 105 further include an MCU, and other related circuits not shown here for simplicity. Figure 1B in Figure 2A view Figure 1B in combination with Figure 2A The depicted flowchart shows the process of the communication system 100 according to Figure 1B as 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 interconnect 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 identifier, 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 may include the identifier of the cellular router 101, the identifier of the administrator of the cellular router 101, the cellular network that can be connected by the wireless communication module 109a, the identifier of the cellular network currently registered by the wireless communication module 109a, and the location of the cellular router 101. The identifier of the cellular router 101 may include the serial number of the cellular router 101. The identifier of the cellular router 101 may also include one or more MAC addresses assigned to the cellular router 101. The location of the cellular router 101 may 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 in 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] Typically, a wireless network requires the cellular router 101 to be authenticated at each startup event or even after a certain period of time. Therefore, the cellular router 101 should be connected to the communication device 105 for continuous authentication.
[0069] In step 208, the cellular router 101 can now connect to the interconnected network 103 through the wireless communication module 109b. A second data connection is established between the cellular router 101 and the communication device 105 using the wireless communication module 109b and the selected second SIM card from the SIM slot 106. After establishing the second data connection, the cellular router 101 uses the wireless communication module 109b to maintain the connection with the communication device.
[0070] In step 209, the first data connection is interrupted and the 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 uses the SIM card information from the third SIM card to connect to the interconnected network 103. The third SIM card is a SIM card other than the SIM card already used in the communication device 105 or another SIM card used in another communication device. The ability to use the wireless communication module 109a together with the third SIM card and the wireless communication module 109b is to bind one or more data connections to form an aggregated data connection. The aggregated data connection can provide more bandwidth than a single data connection. The aggregated data connection can be regarded as one data connection by the session or application using it. In a variant example, the aggregated data connection can be regarded as a VPN connection. Compared with using only the wireless communication module 109b alone, the additional bandwidth and higher reliability provide better performance. When the wireless communication module 109a is not used to connect to the interconnected network, steps 210 to 214 can be skipped.
[0072] In step 210, similar to step 204 but for the third SIM card, the cellular router 101 sends a request containing router information for using the third SIM card with the SIM card inserted in the SIM slot 106. The process in step 211 is similar to the process in step 205 but for the third SIM card.
[0073] In step 212, the selected third SIM card is 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 an embodiment of the cellular router of the present invention.
[0076] The memory 302 and the storage unit 304 are non-transitory computer-readable storage media. In another embodiment, the storage unit 304 is a non-volatile memory. Non-volatile memory or static memory can be used to store static information and instructions of the processor, as well as various system configuration parameters. The storage unit 304 can be configured to store firmware. The firmware can be the operating system of the cellular router 300.
[0077] The RDP 305 sends and receives data containing SIM card information to and from the communication device 320. The RDP 305 is also capable of sending data to and receiving data from the MCU 306.
[0078] The MCU 306 receives the SIM card information sent from the RDP 305 and transmits the SIM card information to the wireless communication module 307. The MCU 306 is also capable of receiving and transmitting messages and keys from and to the wireless communication module 307 through the RDP 305. The MCU 306 is also used for encapsulating and obtaining data, including the SIM card information sent to and from the communication device 320.
[0079] The interface circuit 308 includes related circuits, such as a bus switch and a voltage shifter. The bus switch is used to select the SIM card information received from the MCU 306 accordingly, and the voltage shifter is used to change the voltage of the output from the router MCU 306 when needed.
[0080] The wireless communication module 307 receives the SIM card information and then authenticates it to the wireless communication network or the cellular network via the antenna 340 based on the information. The wireless communication module 307 is also capable of sending messages to the MCU 306. There is no limit to the number of wireless communication modules of the present invention. For example, Figure 3C is shown for Figure 1B a basic block diagram of an example cellular router 330 that is the same as 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, the RDP 305, the MCU 306, and the wireless communication module 307.
[0082] Figure 3B The basic block diagram of an example communication device or SIM library according to an embodiment of the present invention is shown.
[0083] The communication device 320 includes a processing unit 312, a memory 311, a storage unit 313, an MCU 314, a data bus 301, a local data port (LDP) 318, a LAN interface 317, an interface integrated circuit (IC) 316, and a SIM slot 315. The processing unit 312 and the memory 311 are directly connected to each other. There is no limit to the number of interface ICs.
[0084] The processing unit 312 executes program instructions or code segments to implement an embodiment of the communication device 320 of the present invention.
[0085] The memory 311 and the storage unit 313 are non-transitory computer-readable storage media. The storage medium may contain a plurality of software modules, and these software modules may be implemented as software code executed by the processing unit 312 using any suitable type of computer instructions. 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 the 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, the MCU 314, the LAN interface 317, and the 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 shift the voltage up and down because the pin voltage of the MCU 314 may be different from the pin voltage of the SIM card. It is not restricted that the interface IC 316 must be used together 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 (e.g., SIM slot 315a) or removed from the SIM slot, a signal is generated and received by the MCU 314. Then, the MCU 314 may generate a message or signal for the processing unit 312. Subsequently, the processing unit 312 may 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 about 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 serves 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 of Figure 6 as shown.
[0093] In step 601, an activation message is sent from the router MCU 306 to the SIM library MCU 314. The activation message is used to cause the interface IC 308a to send an activation signal for a specific SIM card inserted into the SIM slot 315a. To identify the specific SIM card inserted into the SIM slot 315a from the SIM cards inserted into the SIM slot 315, the activation message is 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 the reset pin of the specific SIM card low 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 the reset pin high.
[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, the Internet Protocol (IP) can be used to encapsulate messages between the router MCU 306 and the SIM library MCU 314. The composition of the message 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 packet for the SIM card message, especially when the IP address of the receiving party has not been discovered. Since the cellular router 330 has more than one wireless communication module 307, an identifier is needed to distinguish the receiver and / or sender of the request / response. Field 2202 holds a specific identifier of the wireless communication module. Similarly, the communication device 320 can have one or more SIM cards inserted into the SIM slot 315. Each SIM card slot has a specific SIM card slot identifier. Field 2203 holds the specific identifier for identifying the specific SIM card slot. Field 2204 holds the request or response transmitted between the wireless communication module and the SIM card inserted into the SIM card slot.
[0096] In one instance, the router MCU 306 and the SIM library MCU 314 communicate via the Ethernet protocol. Figure 7Shows the message structure when transmitting and receiving data between the router MCU 306 and the SIM library MCU 314 using Ethernet. The Ethernet frame 7001 consists of an IP packet 7002. The IP packet 7002 can hold data including SIM card information and MCU creation information 7003.
[0097] The router MCU 306 and the SIM library MCU 314 can encapsulate data into the payloads of one or more IP packets 7002 and embed one or more IP packets 7002 into the payloads of one or more Ethernet frames 7001.
[0098] For example purposes, the router MCU 306 encapsulates the activation message in field 2204, as well as the signature and SIM card slot identification in fields 2201 and 2203 respectively, into the payloads of one or more IP packets and embeds one or more IP packets into the payloads of one or more Ethernet frames. Then, the router MCU 306 transmits one or more Ethernet frames to the SIM library MCU 314.
[0099] When the SIM library MCU 314 receives the activation message from the router MCU 306, the SIM library MCU 314 first de - embeds one or more Ethernet frames and obtains the signature in field 2201, the SIM card slot identification in field 2203, and the activation message in field 2204 from one or more IP packets. Then, the SIM library MCU 314 transmits the activation message in field 2204 to the interface IC connected to the SIM card inserted into a SIM card slot according to the SIM card slot identification in field 2203. When the SIM card receives the activation signal sent from the SIM library MCU 314 through the interface IC, the SIM card will generate an ATR. Then the ATR is transmitted to the SIM library MCU 314 through its corresponding interface IC. The SIM library MCU 314 receives the ATR and encapsulates the ATR in field 2204, as well as the signature and SIM card slot identification in fields 2201 and 2203 respectively, into the payloads of one or more IP packets. Then, the SIM library MCU 314 embeds one or more IP packets into the payloads of one or more Ethernet frames and transmits one or more Ethernet frames to the router MCU 306. For this illustration, the wireless communication module identification in field 2202 is left blank and the router MCU 306 determines it according to the specific identification of the wireless communication module 307a that will send the reset signal.
[0100] In a variant example, the router MCU 306 sends an activation message to the SIM library MCU 314, leaving the SIM card slot identifier in field 2203 blank. In this case, the SIM library MCU 314 obtains the signature and the 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 one of the SIM cards inserted into the SIM slot 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 identifier, 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 identifier in field 2203. For this embodiment, the SIM card slot identifier 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 . One or more IP packets are then embedded in one or more Ethernet frames by the SIM library MCU 314 and sent to the router MCU 306. The router MCU 306 receives the ATR in the form of one or more Ethernet frames. Then, at the router MCU 306, one or more Ethernet frames are de-embedded and one or more IP packets are de-encapsulated to obtain the ATR. After obtaining the ATR, once the router MCU 306 receives a reset signal, the ATR is sent to the wireless communication module 307a via the interface circuit 316a.
[0108] When the distance between the SIM card inserted in the SIM slot 315a and the wireless communication module 307a exceeds one meter, the ATR sent as a 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 assigned to receive the response from the SIM card inserted in the SIM slot 315a. The ATR sent as a 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 instance, when the wireless communication module 307a needs ATR information to start a communication session with the SIM card inserted in the SIM slot 315a, the ATR is obtained by sending a reset signal to the router MCU 306, thus avoiding the need to communicate with the SIM card inserted in the SIM slot 315a at this moment.
[0109] In step 607, the interface circuit 316a receives a 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 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 communicate directly with the router MCU 306 without voltage conversion, the voltage shifter in the interface circuit 316a is not required, and the reset signal in step 607 can be directly sent from the wireless communication module 307a to the router MCU 306.
[0111] In step 608, the router MCU 306 receives the reset signal from the interface circuit 316a. When the router MCU 306 receives the reset signal, the router MCU 306 stores the identification of the wireless communication module 307a for sending the ATR. Then it is ready to send the ATR to the wireless communication module 307a via the interface circuit 316a.
[0112] In step 609, the interface circuit 316a receives the ATR from the router MCU 306. The voltage shifter in the interface circuit 316a helps shift the voltage to send the ATR to the wireless communication module 307a.
[0113] In a variant example, when the router MCU 306 can communicate directly with the wireless communication module 307a, the interface circuit 316a may not be required, and the ATR in step 609 is directly sent from the router MCU 306 to the wireless communication module 307a.
[0114] In step 610, the ATR is received at the wireless communication module 307a. After receiving the ATR, a basic communication channel is established between the SIM card inserted in the SIM slot 315a and the wireless communication module 307a. Then, the wireless communication module 307a starts communicating with the SIM card inserted in the SIM slot 315a using the information contained in the ATR.
[0115] There is no limitation Figure 6 The sequence shown is only applicable to the SIM slot 315a. The sequence is also applicable to other SIM slots in 315, including the SIM slot 315n.
[0116] There is no time limit for performing step 607 after step 606. For example, step 607 can be performed within one second after performing step 606. In another instance, step 607 can be performed several days after performing 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 an ATR is received in step 605, the SIM library MCU 314 then stores the ATR in a non-transitory storage medium and does not send it to the router MCU 306 until the router MCU 306 requests the ATR. Since the cellular router may not 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, when steps 602 - 605 have been executed, step 606 can be performed faster compared to when steps 602 - 605 have not been performed previously. In another variant example, step 606 is performed without performing step 601. The ATR is sent to the router MCU 306 to be stored in a non-transitory computer-readable storage medium at the cellular router. This allows the ATR to be quickly sent to the wireless communication module 307a in step 609 because the ATR has already been stored in the non-transitory computer-readable storage medium at the cellular router.
[0119] There is no limitation that only the ATR is stored in the non-transitory computer-readable storage medium at the communication device or the cellular router. Other SIM card information can also be stored. For example, the International Mobile Subscriber Identity (IMSI) and contact information can also be stored.
[0120] In one variant example, there is no SIM card identification information of the router MCU 306 in the activation message at step 601. Then, the SIM library MCU 314 can select one of the SIM cards to send the activation message in step 602.
[0121] There is also no limitation on the number of ATRs that can be cached or stored at the communication device or the cellular router. For example, ten SIM cards are inserted into the SIM card slot of the communication device 320. The communication device 320 sends activation messages to the ten SIM cards and then stores the received ATRs. In another example, the router MCU 306 sends activation messages to the ten SIM cards and then stores the received ATRs.
[0122] In a variant example, when the ATR has been longer than the first time period, the ATR is discarded. The first time period should not be less than one minute. 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 example, 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 example, if there is no preference for which SIM card to use or the SIM identification is unknown, the cellular router may not include any SIM card identification in the activation message. In a variant example, the cellular router may include SIM card selection criteria in the activation message to enable the communication device 320 to select a SIM card for the wireless communication module.
[0124] One of the reasons for discarding the ATR is that the SIM card corresponding to the ATR may be 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 specific scenario associated with the present invention. This embodiment attempts to extend the waiting time of the wireless communication module 307a. After the wireless communication module 307a sends a request for a response from the corresponding SIM card, the router MCU 306 sends a stop command to the wireless communication module 307a to notify the wireless communication module 307a that the corresponding SIM card is still processing the request. According to the ISO / IEC 7816 standard family (version A) with the T = 0 protocol, the stop command is a message with a process byte containing a null value (i.e., value 60). In this specific scenario, the request consists of a five-byte header and a body. Therefore, the complete size of the request is at least five bytes long. For ease of reading, the term "FBR" used here refers to a request that is at least five bytes long.
[0126] The request 401 is an FBR and is first transmitted from the wireless communication module 307a. Then, the request 401 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 supersedes 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 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 transmits the stop command 404c to the wireless communication module 307a again at the time threshold 403c (i.e., 2.4 seconds, i.e., 0.8 seconds after sending the stop command 404b).
[0130] By Figure 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 wireless communication can only be extended to one minute. When needed, the timeout period can be extended beyond one minute, but is limited by the requirements of the wireless communication module 307a.
[0131] The extension of the timeout period can be predetermined 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 sending 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 a certain number of stop commands within a specific time period, for example, 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 predetermined 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 the 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 only sending request 402.
[0133] In this case, for illustrative purposes, the router MCU 306 sends a modified request 411a after receiving the 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 goes by, when the next MRRTH is reached and a modified response from the SIM library MCU 314 has not been received before expiration, the router MCU 306 sends a modified request 411c. The router MCU 306 continues to send the modified request 411 to the SIM library MCU 314 until the modified response 414 is received. For illustrative purposes, the modified response 414 is received after sending the 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 the modified request 411.
[0134] When sending the modified request 411, the router MCU 306 sends a stop command 413 to the wireless communication module 307a at the time threshold 412, for example, sending stop commands 413a-413c at time thresholds 412a-412c respectively, until the 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. Therefore, the router MCU 306 sends a modified request every forty milliseconds and a stop command every eight milliseconds until the modified response 414 is received or the number of stop commands sent has reached HST. There is no restriction 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 latency. If the modified request 411 is transmitted to the SIM library MCU 314 using TCP transmission.
[0137] When the SIM library MCU 314 receives the first modified request 411, the SIM library MCU 314 unpacks the modified request 411 to obtain the request and then transmits the request to the corresponding SIM card. Then, the corresponding SIM card receives the request and generates a response to the SIM library MCU 314. The SIM library MCU 314 then packages 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 that 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 packages 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, sending 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 on 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 is used with the interrupt signal. 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 an additional eighty-millisecond time threshold 506b and has not received a response from the SIM library MCU 314, the router MCU 306 repeats the previously disclosed process and sends an interrupt signal 503b to the wireless communication module 307a. The wireless communication module then sends a request 501c.
[0145] The router MCU 306 receives a response from the SIM library MCU 314, and the router MCU 306 sends an interrupt signal 513 at each time threshold 516, for example, sending interrupt signals 513a - 513b at time thresholds 516a - 516b. Over time, the router MCU 306 does not transmit to the wireless communication module 307a until a response is received or the number of interrupts sent has reached the break sent threshold (BST). The preferred time period 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 for the router MCU 306 and the SIM library MCU 314.
[0147] For example purposes, the modified response 504 is received by the router MCU 306 after receiving the request 501c. The modified response 504 is in Figure 2BIt is received in the format shown and is a reply to request 501a. After receiving the modified reply 504, the router MCU 306 stops sending further interrupt signals and sends reply 505 to the wireless communication module 307a based on the modified reply 504.
[0148] Compared with Figure 5A where the router MCU 306 only sends the modified request 502a before receiving the modified reply, in Figure 5B multiple modified requests 512a-g are sent. In this case, for illustrative purposes, the router MCU 306 sends the modified request 512a after receiving the received request 511a. If a modified reply from the SIM library MCU 314 is not received before the first MRRTH expires, the router MCU 306 sends the modified request 512b.
[0149] Over time, when at the next MRRTH and a modified reply from the SIM library MCU 314 is still not received before expiration, the router MCU 306 will send additional modified requests, such as modified requests 512c-g, until the reply 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 reply 514 is received after sending the modified request 512g. Then, the router MCU 306 will send reply 515 to the wireless communication module 307a based on the modified reply 514 and stop sending further modified requests 512.
[0151] Preferably, due to the reasons previously explained in conjunction 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 conjunction 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 reply 514 is a reply 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 sent interrupts 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 call for registration and communication 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 call to connect with 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 multiple 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 library 805a and 805b are SIM library A and SIM library B respectively. In steps 910 and 912, SIM directory server 804 communicates with SIM library A and SIM library B respectively. There is no limit to the number of SIM libraries that SIM directory server 804 can communicate with. For example, SIM directory server 804 can communicate with one SIM library or twenty SIM libraries. Nor is it required that all SIM libraries must communicate simultaneously. For example, SIM directory server 804 can first communicate with SIM library B and then, one minute later, communicate with SIM library B again. Then, in steps 911 and 913 respectively, SIM card availability information is sent from SIM library A and SIM library B to SIM directory server 804. A more detailed description of steps 910 - 913 will be provided below with reference to Figure 3.
[0157] It is possible that after SIM directory server 804 communicates with a SIM library, the SIM cards in the SIM library can be used by a cellular router or reserved by another SIM directory server. Therefore, SIM directory server can periodically communicate with SIM library A and SIM library B to obtain updated SIM card availability information. In a variant, in the case where the SIM card availability information changes, the corresponding SIM library can actively communicate with SIM directory server 804.
[0158] Preferably, SIM directory server 804 has updated information on the SIM card information in SIM library A and SIM library B. This enables SIM directory server 804 to identify the SIM card that is suitable or most suitable for cellular routers 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 permits 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 illustrative purposes only, the SIM library A stores the selected SIM card. At step 922, the cellular router 800 sends one or more requests to the SIM library A to communicate with the selected SIM. In a more detailed description, one or more requests are encapsulated in a datagram, and then the datagram is encapsulated in a network frame or packet, such as an Internet Protocol (IP) packet. When the SIM library A receives the request through one of its network interfaces (such as network interface 317), the processing unit (such as processing unit 312) of the SIM library A will process the request and extract the SIM card request originating from the cellular modem of the cellular router 800. Then, the processing unit relays the extracted SIM card request to the selected SIM card. When the selected SIM card receives the extracted SIM card request, the selected SIM card may 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 the 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 the cellular router 800 can de-encapsulate the response, error message or rejection from the network frame or packet, and then forward the response, error message or rejection to the cellular modem. Then, the cellular modem in the cellular router 800 can use the response accordingly. For example, the cellular modem can perform authentication with the cellular network based on the response. In another example, the cellular modem can send and receive wireless data based on the response. Since the communication between the cellular modem and the selected SIM card is encapsulated in network frames and packets, the cellular modem and the selected SIM card can even communicate 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 replies with a response, error message, or rejection, in step 933, SIM library B forwards the reply to the SIM directory server 804. Then, in step 934, the SIM directory server 804 forwards or relays the reply to the cellular router 800. Compared with the embodiment shown in steps 920 - 923, the benefits of this embodiment that uses the SIM directory server 804 for relaying include higher security and easier management. However, the disadvantages include longer latency.
[0162] In another embodiment, the cellular router 800 does not communicate directly with the SIM library. When a request is received from the cellular router 800 in step 941, the additional SIM directory server 804 may not know which SIM cards are available. The request may include a SIM card request. In steps 942 and 943, the SIM directory server 804 requests SIM card availability and almost simultaneously forwards multiple requests based on the request received in step 941 to SIM library A and SIM library B respectively. One of the benefits of sending multiple requests to SIM library A and SIM library B almost simultaneously is that it can reduce the waiting time in case one of the requests is not successfully received by the corresponding SIM library or the SIM libraries do not operate in sequence. One of the disadvantages of sending multiple requests to SIM library A and SIM library B almost simultaneously is that it consumes more resources. In step 944, SIM library A sends a response in response to the request received in step 942. Similarly, in step 945, SIM library A 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 connection or connection termination request from the cellular router. In process 1002, the SIM directory server 804 sends a message to the selected SIM library to collect the status and / or indicate the selected SIM library. For illustrative purposes, the selected SIM library is SIM library B. In one instance, the SIM directory server 804 can collect SIM card availability information. The SIM card availability information can include: the number of available SIM cards, the number of SIM cards in use, the status of one or more SIM cards, the location of one or more SIM cards, the address of one or more SIM cards, the position of one or more SIM cards, and the billing information of one or more SIM cards. In one instance, the SIM directory server 804 can collect information about the connection established with the cellular router using a SIM card in SIM library B. In one instance, the SIM directory server 804 can instruct SIM library B to perform management on one or more SIM cards, including checking the health of the SIM card; disconnecting the connection established between the cellular router and the SIM card; resetting the SIM card electronically; resetting the SIM card mechanically. Process 1001 and 1002 can be performed together using one message or sequentially. In process 1003, the SIM directory server 804 can receive a response from SIM library B. The response can contain the status of SIM library B, the status of one or more SIM cards in SIM library B, the execution result according to the instruction, an error message, and one or more messages received from one or more SIM cards in SIM library B. Based on the response, the processing unit of the SIM directory server 804 can update the database, further instruct SIM library B, and send one or more messages to one or more cellular routers. It is not restricted that SIM library B must send a response to the SIM directory server 804. For example, SIM library B may be disordered and unable to send a response. In another instance, the processing unit of SIM library B can determine not to send a response according to the instructions stored in the non - transitory computer - readable storage medium.
[0165] The database updated in step 1003 can be used as a directory for finding a suitable SIM card. When the cellular router 800 sends a request in step 200, the cellular router 800 may not know which SIM card it should use. Through the database, the processing unit of the SIM directory server 804 can identify the available SIM cards for the cellular router 800. More details of the database will be described in process 1112.
[0166] Figure 11 A more detailed process of steps 920 - 921 is shown. In process 1111, the SIM directory server 804 receives a request to use a SIM card from the cellular router 800. When the cellular router 800 first needs a SIM card to establish wireless communication with a wireless network service provider, the cellular router 800 sends a request to the SIM directory server 804. At this time, the processing unit of the cellular router 800 does not have information on which specific SIM card to use. The processing unit of the cellular router 800 can embed the preference for the SIM card in the request. The processing unit of the cellular router 800 can also embed other information in the request, including the location of the cellular router 800 and other SIM cards that the cellular router 800 is using. The request can be encrypted.
[0167] In a variant, the processing unit of the cellular router 800 can send multiple identical requests to the SIM directory server 804 to increase the reliability of the request received by the SIM directory server 804. There is no restriction on the communication technology or medium used to send the request. For example, the cellular router 800 can send multiple identical requests via DSL communication service, 4G / LTE communication service, and IEEE802.11 wireless network. The processing unit of the SIM directory server 804 can process the first-arrived request among the multiple identical requests and ignore the subsequent-arrived requests among the multiple identical requests.
[0168] In process 1112, the processing unit of the SIM directory server 804 selects a SIM card for the cellular router 800. The selection can be based on the location of the cellular router 800, the wireless communication service providers accessible to the cellular router 800, tariffs, time, date, 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 the SIM cards located in the SIM library 805, the processing unit of the SIM directory server 804 can use the database to quickly select a SIM card when a request is received from the cellular router 800. In the database, the stored information related to the SIM card can include the phone number, IMSI, mobile country code (MCC), mobile network code (MNC), 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 assist in selecting the SIM card.
[0170] For example, based on the location information of the cellular router 800 in the request, the SIM directory server 804 can select a SIM card that 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 the SIM card based not only on the location of the cellular router 800 but also on the remaining allowed data usage of the SIM card.
[0173] The information of the selected SIM card can be obtained from the database of the SIM library storing the selected SIM card. Before selecting the SIM card, the information can also be provided to the SIM directory server 804. For example, the information can be stored in a database locally accessible to the SIM directory server 804. Once the SIM card is selected, the SIM directory server 804 can obtain the information from the database. The information can be used to facilitate the selection.
[0174] In a variant example, after the SIM card is selected, the SIM directory server 804 can verify whether the selected SIM card is indeed available. The SIM directory server 804 can 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 verify with the SIM library within the time limit.
[0176] There is no restriction on the medium and technical communication for the cellular router 800 to send a request to use the SIM card. For example, the request in process 1111 can be sent by the cellular router 800 through an Internet connection or a dedicated connection. The request can 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 can 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 can only be used for communicating with the SIM directory server 804 and the SIM library 805. In a variant example, there is no restriction on the use of the wireless communication module 307a.
[0177] In one embodiment, after a wireless communication module in the wireless communication module 307 has successfully established a connection to the Internet, the cellular router 800 will repeat (i) steps 920 to 923, (ii) steps 931 - 934, or (iii) steps 941 - 946 for another wireless communication module. For example, after the wireless communication module 307a has established an Internet connection using the SIM card connection information from the SIM library 805, the processing unit of the cellular router 800 can use the wireless communication module 307a to execute steps 931 - 934 to obtain the SIM card connection information so that the wireless communication module 307b can connect to the Internet. The SIM card connection information for the wireless communication module 307b is sourced from a SIM card located in one of the SIM libraries.
[0178] In a variant, the SIM library can have one or more wireless communication modules. If the SIM card is operable, the processing unit of the SIM library can use one or more wireless communication modules to test the SIM card. This avoids the situation where the SIM directory server 804 assigns disordered SIM cards to the cellular router. In a variant, the processing unit of the SIM library can communicate with the SIM card for testing without using a wireless communication module. In a variant, the SIM directory server can issue a test instruction to the SIM library to test the SIM card.
[0179] In a variant, the SIM directory server can have one or more wireless communication modules. If the SIM card in the SIM library is operable, the processing unit of the SIM directory server can use one or more wireless communication modules to test the SIM card. This avoids the situation where the SIM directory server 804 assigns disordered SIM cards to the cellular router. In a variant, the processing unit of the SIM directory server can communicate with the SIM card for testing without using a wireless communication module.
[0180] Figure 12 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 13When 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 stored 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 stored in one or more SIM libraries by the same or different wireless service providers. Multiple connections can be established respectively through multiple wireless communication modules, such as wireless communication module 307a and wireless communication module 307b. The present invention is not limited to two wireless communication modules. There can be five, ten, fifty, one hundred or even more wireless communication modules. There is also no limit on 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] Therefore, after process 1308, the remaining multiple connections and the new connection can be used for communication. In one example, the connections can be aggregated together to form an aggregated connection. The processing unit of the cellular router 800 can use the aggregated connection to communicate with the SIM directory server 804 and connect to other hosts and servers.
[0190] After process 1308, process 1302 will be repeated to determine whether other connections should be disconnected. In a variant, this embodiment can end after process 1308 without returning to process 1302.
[0191] There is no limitation that the MCU and the interface circuit must be discrete components. If the processing unit 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 (such as cellular routers 330 and 801) and the SIM library or the SIM directory server is redundantly executed to improve reliability. For example, multiple identical requests and / or responses can be sent. The first received request or response will be used for processing, while the other requests or responses will be discarded.
[0193] The present invention is not limited to the cellular router 111. For example, the cellular router can be replaced by an electronic device that provides network 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 selecting a SIM card for a wireless communication device in a SIM directory server, comprising: a. Periodically obtaining the status of SIM cards from at least one SIM library via an interconnected network; b. Maintaining a SIM directory based on the status of the SIM cards; c. Receiving a SIM card request from the wireless communication device via the interconnected network; d. Selecting a SIM card and a SIM library based on the SIM directory and the request; e. Using one or more first wireless communication modules to test the SIM card; f. Responding to the request with the identification of the SIM library and the SIM card; and wherein the status of the SIM card is stored in a database of the SIM directory server.
2. The method according to claim 1, further comprising: When a SIM card is inserted or removed in the at least one SIM library, receiving a status update from the at least one SIM library.
3. The method according to claim 1, further comprising: When multiple requests are received, one of the multiple requests is used for selection.
4. The method according to claim 1, wherein the SIM card is selected according to at least one criterion among the location of the wireless communication device, mobile network code, network tariff, and SIM card availability.
5. The method according to claim 1, wherein the request is received via an aggregated connection.
6. The method according to claim 1, wherein the request includes information about the wireless network that can be connected to.
7. The method according to claim 1, wherein the at least one SIM library has multiple SIM slots for accommodating multiple SIM cards, and the multiple SIM cards are issued by more than one wireless service provider.
8. The method according to claim 1, wherein the response is sent via an aggregated connection.
9. The method according to claim 1, wherein the at least one SIM library has one or more second wireless communication modules.
10. The method according to claim 1, further comprising: Relaying a message received from the wireless communication device to the SIM library.
11. A system for selecting a SIM card for a wireless communication device in a SIM directory server, comprising: At least one processing unit; At least one non-transitory computer-readable storage medium for storing program instructions executable by the at least one processing unit: a. Periodically obtaining the status of SIM cards from at least one SIM library via an interconnected network; b. Maintaining a SIM directory based on the status of the SIM cards; c. Receiving a SIM card request from the wireless communication device via the interconnected network; d. Selecting a SIM card and a SIM library based on the SIM directory and the request; e. Using one or more first wireless communication modules to test the SIM card; f. Responding to the request with the identification of the SIM library and the SIM card; and wherein the status of the SIM card is stored in a database of the SIM directory server.
12. The system according to claim 11, wherein the at least one non-transitory computer-readable storage medium further stores program instructions executable by the at least one processing unit: When a SIM card is inserted or removed in the at least one SIM library, receiving a status update from the at least one SIM library.
13. The system according to claim 11, wherein the at least one non-transitory computer-readable storage medium further stores program instructions executable by the at least one processing unit: When receiving multiple requests, select one of the multiple requests for use.
14. The system according to claim 11, wherein the SIM card is selected according to at least one criterion among the location of the wireless communication device, mobile network code, network tariff, and SIM card availability.
15. The system according to claim 11, wherein the request is received through an aggregation connection.
16. The system according to claim 11, wherein the request includes information about a wireless network to which it is possible to connect.
17. The system according to claim 11, wherein the at least one SIM library has a plurality of SIM slots for accommodating a plurality of SIM cards, and the plurality of SIM cards are issued by more than one wireless service provider.
18. The system according to claim 11, wherein the response is sent through an aggregation connection.
19. The system according to claim 11, wherein the at least one SIM library has one or more second wireless communication modules.
20. The system according to claim 11, wherein the at least one non-transitory computer-readable storage medium further stores program instructions executable by the at least one processing unit: Relay a message received from the wireless communication device to the SIM library.
Citation Information
Patent Citations
System and method for using multiple SIM cards limitlessly
CN105120448A