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.

18 points

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.

permalink
report
reply
7 points

Asterisk was my first thought too.

permalink
report
parent
reply
4 points

It can even do XMPP in addition to telephony.

permalink
report
parent
reply
4 points

This. It’s what’s under the hood of freepbx

permalink
report
parent
reply
3 points

Ooh, thank you! This looks exactly what I am looking for.

permalink
report
parent
reply
6 points

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.

permalink
report
parent
reply
4 points

Did a little digging and this might be a decent starting point! https://www.mundoopensource.com.br/en_page_xmpp_asterisk_pratical_example/

permalink
report
reply
1 point

Thanks a lot for digging! This is a very useful

permalink
report
parent
reply
2 points

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.

permalink
report
reply
2 points
*

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?

permalink
report
parent
reply
1 point

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.

permalink
report
parent
reply
1 point
*

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)

permalink
report
parent
reply
1 point
*

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.

permalink
report
parent
reply
3 points
*

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.

permalink
report
parent
reply
1 point

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.

permalink
report
parent
reply
1 point

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.

permalink
report
parent
reply

Selfhosted

!selfhosted@lemmy.world

Create post

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.

Rules:

  1. Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

Community stats

  • 4.9K

    Monthly active users

  • 3.5K

    Posts

  • 75K

    Comments