An overview of the components that make up JMP, from a 2017-03-30 conversation in discuss@conference.soprani.ca:
- there are 4 main source trees that make up JMP currently: jmp-register, jmp-fwdcalls, sgx-catapult, and Cheogram
- jmp-register is just for registration stuff - once you've signed up, you won't use it again (unless you choose to pay via PayPal in the automated way available on https://jmp.chat/ )
- jmp-fwdcalls is used exclusively for handling inbound calls - it forwards them to the number you've configured, or gives a recorded message saying the number doesn't accept voice calls (as a hack, it also handles the voice verification code)
- sgx-catapult includes both sgx-catapult.rb and mpx-catapult.rb
- sgx-catapult.rb is the XMPP gateway to my carrier (Catapult) - it translates my carrier's messages into XMPP messages, that can either be handled directly by your XMPP client, or relayed through Cheogram (the latter is now the default with new signups)
- mpx-catapult.rb is a basic HTTP proxy that is used exclusively for delivering MMS to an sgx-catapult user - when you access a URL it hosts (which sgx-catapult is configured to send you), then it will fetch the media from Catapult and relay it back to you
- Cheogram is its own XMPP gateway that abstracts away an underlying gateway (such as sgx-catapult) so that you can use @cheogram.com JIDs in your roster and switch to some other gateway later, without changing your roster; it also does other cool things like providing an SMS drop-down while adding a contact (ie. in Gajim) so you can just enter a phone number in whatever format you like and have it convert to the E.164 format plus "@cheogram.com" that Cheogram requires for contacts
- Cheogram uses a preconfigured sgx-catapult number when it doesn't have a route configured for a given JID - this functionality is currently used primarily by jmp-register for sending the verification codes