I would like to use a SIM7600X 4G Expansion Board (like this one) to connect my raspberry pi to the mobile network.
In this raspberry pi I am also running an XMPP server.
I want to then create an account that will bridge SMS messages between the SIM7600 and my XMPP account (should be easy), and ideally it should also be able to bridge phone calls (might be difficult?).
I know about the XMPP-VoIP JMP.chat, and since they are open source I can get some inspiration from them.
I will try to implement something myself, but I am not an amazing programmer. So I am wondering whether there is already some open source project that is more tailored for this application.
If I understand what I’ve read, you may be interested in a SIP software called asterisk. It may do what you’re looking for.
Asterisk was my first thought too.
It can even do XMPP in addition to telephony.
Ooh, thank you! This looks exactly what I am looking for.
You’ll like it. It’s really versatile and has been around for like 20+ years so lots of support for it. It can be pretty comprehensive.
This. It’s what’s under the hood of freepbx
Did a little digging and this might be a decent starting point! https://www.mundoopensource.com.br/en_page_xmpp_asterisk_pratical_example/
Thanks a lot for digging! This is a very useful
That’s a nice little board! Web search SIM7600X finds various code you can use. Idk if asterisk can support it directly though.
Another possibility might be to use a consumer mobile phone I guess.
I wonder if there might be a 5g version of the board sometime.
Very strange line from specs.
USB Driver Windows XP/7/8/10/11, Linux (driver free on Raspberry Pi Raspbian system)
Does it mean binary blob driver only? and you need to pay for it to use it on PC?I think it means that on Linux, no driver is needed (“driver-free” = free of drivers) since it uses the kernel USB stack. On windows there may be a USB driver that gets loaded. But you’re right, it’s ambiguous.
Yeah, it is written funny. But what it means is that the Linux kernel already comes pre-packaged with the drivers necessary to communicate using the protocol used by this device (UART or USB). These Linux drivers (and by extension Raspbian) are natively capable of interfacing via the GPIO pins or via the USB connectors. It is not true that the device is “driver free” as you always need a driver for this, what they meant is that it is not necessary to install any additional drivers for Linux. So “free from installation” I suppose.
Windows does not come pre-packaged with these drivers, so you need to install them if you want to interface with the device via USB. The chip that the board uses for the UART -> USB conversion is the CP2102. This chip is a common chip used in some ESP32 boards, and I think it would work fine with the standard CP210x driver. But on their site they do provide a specific driver for free (SIMCOM_Windows_USB_Drivers_V1.0.2.exe)
I agree, it looks like a nice board!
But… after ordering it I noticed that while the pictures in the website show the “SIM7600G-H” chip - which supports global GSM and LTE bands - the text description specifies that the chip included in the kit is the “SIM7600CE-T”, which supports the Chinese bands. I am not sure I will get the correct version now 😅 But there are other “SIM7600G-H” modules and USB dongles available out there, and from what I have found this chip is a nice option for GSM/LTE projects.
There’s a device called cell2jack that converts your mobile phone to a pseudo landline. It talks to the cell phone by Bluetooth and has an rj11 port that you plug a landline phone into.
I wonder if one can do similar with software on a raspberry pi. That is, use Bluetooth and a mobile phone instead of that board. It’s clunkier but everyone has old phones around, that have the right bands etc. the Pi software could even create a listener port that you can connect to with a SIP client.
Is there a reason you don’t want to just use a SIP service by the way? It would certainly be cheaper than that board plus a mobile plan.
Thanks, I will look into those.
Is there a reason you don’t want to just use a SIP service by the way? It would certainly be cheaper than that board plus a mobile plan.
At the moment I am using a SIP service - at least I think I am. Is JMP.chat a SIP service? It works to a degree for me but there are many drawbacks. I can’t get a number from my country, many services recognize and block the phone number as a VoIP phone (for example, telegram), and I have to trust an additional intermediary to get my unencrypted SMS and 2FA codes. I do trust the service providers to a reasonably high degree, but I don’t think it is wise to associate their numbers with sensitive accounts such as my bank account.
The VoIP idea is not the reason why I began playing with these boards in the first place, though. It is an idea that I thought of while playing with these modules. And I don’t use mobile plans. I use sim cards that I can top up when needed, so the cost is about $5 every 6 months or so for the home base, and about ~$5 a month for the data I use for my mobile router. The reason why I want to control the device through the raspberry pi is that then I also have more fine-grained control over the top-up process and I “own” my phone number without an additional intermediary.
I see, yeah, reasonable point about some services not liking hosted phone numbers. I haven’t had serious problems with that, but it is a thing.
If you can use those sims in mobile phones then I’d call them mobile plans. Can I ask what country you are in? Here in the US, mobile service costs a lot more. I have been getting SIP service from vitelity.net but twilio.com and voip.ms are better known here. I don’t know about jmp.chat.
I haven’t had trouble using a hosted number for banking and it feels better to me than using a mobile number. The cheap mobile providers (MVNO’s) I use here are sketchy, mobile numbers change all the time, etc. I use a VoIP number as my permanent stable number and forward it to my mobile. So if I switch mobiles, I just change the forwarding. In theory you can port phone numbers between carriers but I’ve had significant hassle doing that. That’s just here though. It may be different where you are.
If you can use those sims in mobile phones then I’d call them mobile plans. Can I ask what country you are in? Here in the US, mobile service costs a lot more. I have been getting SIP service from vitelity.net but twilio.com and voip.ms are better known here. I don’t know about jmp.chat.
The Netherlands. I just checked and it is €10 for 5GB/month or €8 for 5GB month if one pays for a year: https://www.lycamobile.nl/en/bundle/monthly-plan-xs/?m=12
But in the shops they have signs with deals and you can get often get codes for cheaper. They print out the codes for you and you can top-up by issuing a USSD code when needed. I buy a stack of codes, type them into my notes app, and use them when I need them. Since I commonly have WiFi available I sometimes go months without activating them.
In the home base I wouldn’t need data, as it is interfacing through the raspberry pi. Most of my phone activity is getting codes for 2FA for some important services that force me to. Since I rarely make calls, I can top up €5 of credit when needed. I need to make sure to top up every 6 months so that the SIM does not get deactivated. That’s why estimate ~€10 for every 6 months.
This works for me because I do not use the standard phone features (SMS and calling) often. If it were up to me, I would not have the phone functionality at all and simply keep the data. But sometimes I need a phone number. The purpose of this project is to keep the convenience of having a phone in the rare cases I need it without constantly having on me a device broadcasting unique identifiers. As for why go self-host route… I think the same can be said for many other self-hosting projects, it is nice to have more control. It is not really about the money. Saving money is part of the fun, and that is an easy way to “justify” what I’m doing… but the reality is that any savings argument probably gets thrown into the BS pile when we account for the time invested, failed attempts, and the extra stuff I buy for trial and error. Ultimately for me it’s really not about money, it’s about being mindful, learning, and having fun.
I haven’t had trouble using a hosted number for banking and it feels better to me than using a mobile number. The cheap mobile providers (MVNO’s) I use here are sketchy, mobile numbers change all the time, etc. I use a VoIP number as my permanent stable number and forward it to my mobile. So if I switch mobiles, I just change the forwarding. In theory you can port phone numbers between carriers but I’ve had significant hassle doing that. That’s just here though. It may be different where you are.
I have found VoIP numbers from Canada and the US, I am not sure if it is easy to get one from the Netherlands. I have experience being banned from sites immediately after registering with the VoIP number because of “suspicious activity”.
That is interesting, the least you can pay for a sim here is about 2.5 USD/mo as far as I can tell. A phone number by itself is about 1 USD/mo. Vitelity no longer seems to show prices on its public site, but Twilio has NL mobile numbers for 6 USD/mo which seems pretty high to me: https://www.twilio.com/en-us/voice/pricing/nl
SMS for 2fa is deprecated here because of insecurity and TOTP is generally preferable. Can you use that instead?
I understand about DIY and am interested to hear how this goes for you. I might like to try it myself.
Thanks for checking!
SMS for 2fa is deprecated here because of insecurity and TOTP is generally preferable. Can you use that instead?
My first choice is a YubiKey, second choice is the Aegis Authenticator app, and the phone I only use for services that force me to. A few still do, unfortunately!
I understand about DIY and am interested to hear how this goes for you. I might like to try it myself.
If I manage to set up something that I think is interesting and functional enough, I will post about it 😄
The board finally arrived and it is indeed the SIM7600G-H, which is the global version.
I tried it on my raspberry pi 5 and struggled a bit because there was a change to the UART interface between the PI 4 and PI 5 and the documentation on this board describes the PI 4. But, after some fiddling around I figured out the correct setting and got it to work. The main difference is that the “UART0” needs to be explicitly turned on because the default debugging UART now uses the UART10 interface that is somewhere else on the board.