comparison doc/Arch-design @ 5:8a7eb3d4570a

doc/Arch-design: document the plan of shell access to SMSC
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 23 Dec 2023 04:09:20 +0000
parents da97e78a5586
children acc5b1c3e07d
comparison
equal deleted inserted replaced
4:da97e78a5586 5:8a7eb3d4570a
310 310
311 The complexity described above is needed for the following reasons: 311 The complexity described above is needed for the following reasons:
312 312
313 * One radical idea is to grant limited access (by way of a very strict wrapper) 313 * One radical idea is to grant limited access (by way of a very strict wrapper)
314 to themwi-smsc-dump to unprivileged users of the network served by the SMSC, 314 to themwi-smsc-dump to unprivileged users of the network served by the SMSC,
315 i.e., to end users. The idea is that each individual user should be able to 315 i.e., to end users. Please see section 3.2 for the details.
316 give their ssh public key to the administrator of the community network, and
317 then ssh into a special restricted service on the SMSC that does not grant
318 any system shell access, but allows them to access services under their own
319 phone number. Such an empowered end user should be able to submit SMS from
320 their own phone number using the power of a full-size computer (as opposed to
321 very painful text entry on the numeric keypad of a traditional GSM phone),
322 and to see a full log of all messages received by or sent from their own
323 phone number.
324 316
325 * By the nature of her job, the administrator of the SMSC (and of the community 317 * By the nature of her job, the administrator of the SMSC (and of the community
326 GSM network to which this SMSC belongs) necessarily has access to every 318 GSM network to which this SMSC belongs) necessarily has access to every
327 message that passes through the system, all metadata and actual content. 319 message that passes through the system, all metadata and actual content.
328 While this access is technically necessary, an administrator who is worthy of 320 While this access is technically necessary, an administrator who is worthy of
753 themwi-smsc-gsmif remain to be determined; the current plan is to implement 745 themwi-smsc-gsmif remain to be determined; the current plan is to implement
754 other parts of ThemWi-SMSC first. 746 other parts of ThemWi-SMSC first.
755 747
756 3. SMS communication via direct shell access 748 3. SMS communication via direct shell access
757 749
750 In the context of Themyscira Wireless, local users of the SMSC are human
751 members of our local community who have mobile telephone numbers (MTNs) on
752 Themyscira Wireless network. The conventional way to access Short Message
753 Service is via a GSM phone handset with a Themyscira SIM card: send outgoing
754 messages as MO and receive incoming ones as MT. However, we (the Presiding
755 Sisterhood of Themyscira) think outside the box, and we believe in maximal user
756 empowerment - hence we aim to provide a second way for any of our users to
757 access SMS at their personal MTN, via a novel ssh-based command line mechanism.
758
759 The idea is that each individual user should be able to give their ssh public
760 key to the administrator of the community network, and then ssh into a special
761 restricted service on the SMSC that does not grant any system shell access, but
762 allows them to access services under their own phone number. Such an empowered
763 end user should be able to submit SMS from their own phone number using the
764 power of a full-size computer (as opposed to very painful text entry on the
765 numeric keypad of a traditional GSM phone), and to see a full log of all
766 messages received by or sent from their own phone number.
767
768 Aside from allowing outgoing SMS to be composed on a real computer in vi instead
769 of phone keypad text entry, ssh-based access to the SMSC works over the Internet
770 and is thus available from everywhere in the world, far outside the coverage
771 area of the local GSM network. Enabling Themyscira citizens to send SMS from
772 their own "home" number and see texts arriving at that same number while far
773 away from home GSM service is expected to be a highly empowering feature.
774
775 3.1. themwi-smsc-submit command line utility
776
777 This shell utility takes two mandatory command line arguments (source and
778 destination phone numbers) and reads SM body text from stdin. The input
779 language expected on stdin will be the same as output from sms-encode-text
780 utility, described here:
781
782 https://www.freecalypso.org/hg/sms-coding-utils/file/tip/doc/Tool-workflow
783
784 themwi-smsc-submit will construct a new SM in the form of struct sm_record and
785 inject it into the SMSC with SMSC_REQ_SUBMIT. themwi-smsc-core needs to be
786 running, but no other component daemons are needed.
787
788 This utility is envisioned as having multiple uses:
789
790 * During SMSC development, it is the easiest way to generate messages.
791
792 * For end user access to the SMSC (the main topic of this chapter), there will
793 a wrapper that allows users to enter arbitrary destination number and message
794 body input, but the source phone number will be fixed to that of the
795 subscriber.
796
797 * All "big" MNOs have "special" auto-generated SMS they send out for customer
798 notifications and whatnot, with message source address set to some special
799 number or even alphanumeric (TON=5), and they can also have special encodings
800 performing functions such as SIM OTA programming. themwi-smsc-submit is one
801 way to generate such SMs; the other option is to have custom processes for
802 other MNO functions connect directly to themwi-smsc-core socket interface,
803 but in simpler and more casual environments the command line utility is
804 expected to be sufficient.
805
806 3.2. Unprivileged user access to themwi-smsc-dump
807
808 The principal operation of themwi-smsc-dump is described in section 2.2.3.
809 When accessed directly, without going through restrictive wrappers, this tool
810 has the power of reading every message that ever went through the local SMSC,
811 going back to the beginning of PMS archive - such unrestricted access should be
812 given only to trusted administrators. However, themwi-smsc-dump will also have
813 a lot of command line options that restrict what it displays, including an
814 option to show only messages whose source or destination matches a certain phone
815 number. A restrictive wrapper that invokes themwi-smsc-dump with this specific
816 number option, and strictly preens all other options, can be made available to
817 unprivileged users who wish to use ssh access to read their SMS.
818
819 If someone receives SMS at their phone number while away from ThemWi GSM
820 coverage, the received SM will remain in the SMSC in the active state -
821 themwi-smsc-gsmif will be retrying delivery attempts to the GSM MS. If the
822 human owner of that phone number uses ssh access to read their SMS while in
823 this state, they will see the received message in the active state; if they get
824 back home into coverage zone before the received SM expires, they will also
825 receive the same SM on their GSM phone.
826
827 4. Interface to local Osmocom GSM network
828
829 GSUP and separate MSISDN-to-IMSI lookup, to be described.
830
831 5. SMPP connection handlers and outside-world SM exchange
832
758 To be filled. 833 To be filled.
759
760 4. Interface to local Osmocom GSM network
761
762 GSUP and separate MSISDN-to-IMSI lookup, to be described.
763
764 5. SMPP connection handlers and outside-world SM exchange
765
766 To be filled.