| == simtrace2-remsim-client |
| |
| The client interfaces with GSM phones / modems via dedicated "Card |
| Emulation" devices such as the Osmocom SIMtrace2 or sysmocom sysmoQMOD |
| board + firmware. This hardware implements the ISO7816-3 electrical |
| interface and protocol handling and passes any TPDU headers received |
| from the phone/modem to `remsim-client` for further processing of the |
| TPDUs associated to the given APDU transfer. |
| |
| `remsim-client` connects via a RSPRO control connection to remsim-server |
| at startup and registers itself. It will receive configuration data |
| such as the `remsim-bankd` IP+Port and the ClientId from remsim-server. |
| |
| After receiving the configuration, `remsim-client` will establish a RSPRO |
| data connection to the `remsim-bankd` IP:Port. |
| |
| As the USB interface for remote SIM in simtrace2.git uses one interface |
| per slot, we can implement the client in blocking mode, i.e. use |
| blocking I/O on the TCP/RSPRO side. This simplifies the code compared |
| to a more complex async implementation. |
| |
| === Running |
| |
| simtrace2-remsim-client currently has the following command-line options: |
| |
| ==== SYNOPSIS |
| |
| *simtrace2-remsim-client* [...] |
| |
| ==== OPTIONS |
| |
| *-h, --help*:: |
| Print a short help message about the supported options |
| *-s, --server-host A.B.C.D*:: |
| Specify the remote IP address / hostname of the remsim-server to which |
| this client shall establish its RSPRO control connection |
| *-p, --server-port <1-65535>*:: |
| Specify the remote TCP port number of the remsim-server to which this client |
| shall establish its RSPRO control connection |
| *-c, --client-id <1-65535>*:: |
| Specify the numeric client identifier of the SIM bank this bankd |
| instance operates. The tuple of client-id and client-slot must be unique |
| among all clients connecting to the same remsim-server. |
| *-n, --client-slot <0-65535>*:: |
| Specify the slot number served within this client. The tuple of |
| client-id and client-slot must be unique among all clients connecting |
| to the same remsim-server. |
| *-i, --gsmtap-ip A.B.C.D*:: |
| Specify the IP address (if any) to which APDU traces are sent in |
| GSMTAP format (useful for debugging; supported by wireshark). |
| *-k, --keep-running*:: |
| Specify if the remsim-client should terminate after handling one |
| session, or whether it should keep running. Fast respawn (i.e. no |
| --keep-running) is probably the more robust option at this point. |
| *-V, --usb-vendor*:: |
| Specify the USB Vendor ID of the USB device served by this client, |
| use e.g. 0x1d50 for SIMtrace2, sysmoQMOD and OWHW. |
| *-P, --usb-product*:: |
| Specify the USB Product ID of the USB device served by this client, |
| use e.g. 0x4004 for sysmoQMOD. |
| *-C, --usb-config*:: |
| Specify the USB Cofiguration number of the USB device served by this |
| client. Default will use current configuration of the device. |
| *-I, --usb-interface*:: |
| Specify the USB Interface number (within active configuration) of the |
| USB device served by this client. Default will use FIXME. |
| *-S, --usb-altsetting*:: |
| Specify the USB Alternate Setting to be used within the USB Interface |
| of the USB device served by this client. Default will use FIXME. |
| *-A, --usb-address <0-255>*:: |
| Specify the USB Address of the USB device served by this client. This |
| is useful in case multiple identical USB devices are attached to the |
| same host. However, the address changed at every re-enumeration and |
| it's therefor recommended to use the USB path (see below). |
| *-H, --usb-path*:: |
| Specify the USB path of the USB device served by this client. This is |
| usefule to disambiguate between multiple identical USB devices |
| attached to the same host. You don't need this if you have only one |
| SIM emulation device attached to your system. |
| *-a, --atr HEXSTRING*:: |
| Specify the initial ATR to be communicated to the modem/phone. Can |
| and will later be overridden by the ATR as specified by remsim-bankd |
| once a card has been mapped to this client. |
| |
| === Logging |
| |
| remsim-client currently logs to stdout only, and the logging verbosity |
| is not yet configurable. However, as the libosmocore logging framework |
| is used, extending this is an easy modification. |