Osmo-remsim » History » Revision 14
Revision 13 (laforge, 10/23/2021 08:41 AM) → Revision 14/16 (laforge, 07/25/2022 07:18 AM)
{{>toc}} h1. osmo-remsim osmo-remsim is a suite of software programs enabling physical/geographic separation of a cellular phone (or modem) on the one hand side and the SIM/USIM/ISIM card on the other side. Using osmo-remsim, you can operate an entire fleet of modems/phones, as well as banks of SIM cards and dynamically establish or remove the connections between modems/phones and cards. So in technical terms, it behaves like a proxy for the ISO 7816 smart card interface between the MS/UE and the UICC/SIM/USIM/ISIM. While originally designed to be used in context of cellular networks, there is nothing cellular specific in the system. It can therefore also be used with other systems that use contact based smart cards according to ISO 7816. Currently only the T=0 protocol with standard (non-extended) APDUs is supported. Both T=1 and extended APDU support can easily be added as a pure software update, should it be required at some future point. h2. Typical osmo-remsim deployment with 8 sim cards and two modems {{graphviz_link() digraph { rankdir=LR; subgraph cluster_0 { label="Data Center"; SIM0 [shape=rect]; SIM1 [shape=rect]; SIM2 [shape=rect]; SIM3 [shape=rect]; SIM4 [shape=rect]; SIM5 [shape=rect]; SIM6 [shape=rect]; SIM7 [shape=rect]; sysmoOCTSIM [shape=rect]; { rank=same; bankd [label="remsim-bankd"]; server [label="remsim-server"]; } SIM0 -> sysmoOCTSIM [label="ISO-7816-2/3",dir=both]; SIM1 -> sysmoOCTSIM [label="ISO-7816-2/3",dir=both]; SIM2 -> sysmoOCTSIM [label="ISO-7816-2/3",dir=both]; SIM3 -> sysmoOCTSIM [label="ISO-7816-2/3",dir=both]; SIM4 -> sysmoOCTSIM [label="ISO-7816-2/3",dir=both]; SIM5 -> sysmoOCTSIM [label="ISO-7816-2/3",dir=both]; SIM6 -> sysmoOCTSIM [label="ISO-7816-2/3",dir=both]; SIM7 -> sysmoOCTSIM [label="ISO-7816-2/3",dir=both]; sysmoOCTSIM -> bankd [label="USB CCID",dir=both]; bankd -> server [label="RSPRO/IPA/TCP"]; } subgraph cluster_1 { label="Remote Site A"; client1 [label="remsim-client"]; SIMtrace1 [label="SIMtrace2\nAPP=cardem",shape=rect]; Phone1 [label="Phone/Modem",shape=rect]; client1 -> SIMtrace1 [label="USB",dir=both]; SIMtrace1 -> Phone1 [label="ISO-7816-2/3",dir=both]; bankd -> client1 [label="RSPRO/IPA/TCP/IP",dir=both]; client1 -> server [label="RSPRO/IPA/TCP"]; } subgraph cluster_2 { label="Remote Site B"; client2 [label="remsim-client"]; SIMtrace2 [label="SIMtrace2\nAPP=cardem",shape=rect]; Phone2 [label="Phone/Modem",shape=rect]; client2 -> SIMtrace2 [label="USB",dir=both]; SIMtrace2 -> Phone2 [label="ISO-7816-2/3",dir=both]; bankd -> client2 [label="RSPRO/IPA/TCP/IP",dir=both]; client2 -> server [label="RSPRO/IPA/TCP"]; } } }} {{include(cellular-infrastructure:MacroBinaryPackages)}} h2. User Manual The latest user manual is available from https://ftp.osmocom.org/docs/latest/osmo-remsim-usermanual.pdf h2. Presentation / Video An early presentation video recording is available:"osmo-remsim: Remote SIM card Software":https://media.ccc.de/v/osmocon2018-93-osmo-remsim-remote-sim-card-software Please keep in mind that this video was done at a relatively early point in the development, so not everything may still be correct today. h2. Source code The source code is available from @gitea.osmocom.org@ @git.osmocom.org@ (module @osmo-remsim@). Public read-only access is available via <pre> git clone https://gitea.osmocom.org/sim-card/osmo-remsim git://git.osmocom.org/osmo-remsim.git </pre> You can also browse it via the web browser at https://gitea.osmocom.org/sim-card/osmo-remsim cgit: https://git.osmocom.org/osmo-remsim Contributions are welcome via [[Cellular-Infrastructure:Gerrit]]. h2. Test Suite We have a TTCN-3 test suite as part of our [[cellular-infrastructure:Titan_TTCN3_Testsuites]] * source code: https://gitea.osmocom.org/ttcn3/osmo-ttcn3-hacks/src/branch/master/remsim https://git.osmocom.org/osmo-ttcn3-hacks/tree/remsim * results: https://jenkins.osmocom.org/jenkins/view/TTCN3/job/ttcn3-remsim-test/ h2. Supported Hardware h3. SIM card readers/banks * lab / small deployments (less than 8 slots) ** any readers supported by "pcsc-lite":https://pcsclite.apdu.fr/ (USB-CCID readers like "CM3121":https://shop.sysmocom.de/Omnikey-CardMan-3121-USB-CCID-interface/cm3121 "CM3121":http://shop.sysmocom.de/products/cm3121 or "CM6121":https://shop.sysmocom.de/Omnikey-CardMan-6121-USB-CCID-interface-2FF-sized/cm6121) "CM6121":http://shop.sysmocom.de/products/cm6121) * medium size deployments (8 slots or multiple) ** "sysmoOCTSIM":https://www.sysmocom.de/products/lab/sysmooctsim (8 slot reader) * large size deployments (96 slots and up) ** "sysmoSIMBANK-96":https://sysmocom.de/products/sim/sysmosimbank/index.html and sysmoSIMBANK-192 (19" units with 96 and 192 slots, respectively Support for other SIM bank hardware or card readers can of course be added by either contributing related patches or funding related development. h3. Interface to Phone/Modem * "sysmoQMOD":https://www.sysmocom.de/products/lab/sysmoqmod (board with four mPCIe modem slots and remote SIM support) * [[simtrace2:]] (cannot only be used for tracing but also for card emulation by means of "cardem" firmware) * [[ngff-cardem:]] (single-slot M.2/ngff modem carrier board with on-board microcontrolelr that can run the "cardem" firmware) h2. Contact / Getting Help Contact us via the simtrace@lists.osmocom.org mailing list, see [[Cellular-Infrastructure:Mailing Lists]]. You can file issues (bugs / feature requests) using the redmine project you're currently viewing. h2. Authors / Credit osmo-remsim was mainly developed by Harald Welte, with contributions from Kevin Redon. h2. Further pages in this wiki {{child_pages}} {{include(cellular-infrastructure:MacroCommercialSupport)}}