Introduction
You can make your own VoIP phone setup for cheap using a Grandstream ATA (Analog Telephone Adapter), the JMP.chat service, and XMPP. This lets you use a regular landline phone to make and receive calls over the internet. No phone company needed. JMP.chat gives you a real phone number that works over XMPP, and the Grandstream ATA converts the signal so a normal phone can use it.
What You Need
- A Grandstream ATA (like the HT801 or HT802). You can find these for around $30-$40.
- A regular analog phone (any old landline phone with an RJ11 plug).
- An Ethernet cable and internet connection.
- A JMP.chat account.
- Gajim (a free XMPP chat client for your computer).
Step 1: Create an XMPP Account
JMP.chat works through XMPP, so you need an XMPP account first. You can register one at any public XMPP server. Some popular free ones are:
- nixnet.services
- disroot.org
- jabber.de
- xmpp.is (This is what I use)
Go to one of those sites and sign up for an account. Your address will look like yourname@server.com. Remember your full XMPP address (called a JID) and password.
Step 2: Install Gajim and Sign In
Gajim is a desktop XMPP client. Install it on your computer:
sudo apt install gajim
Open Gajim, click “Add Account”, and enter your XMPP address (JID) and password from Step 1. Once you’re signed in, you’re connected to the XMPP network.
Step 3: Sign Up for JMP.chat
Go to jmp.chat and sign up. JMP.chat will ask for your XMPP address. Enter the same JID you just created. JMP will send you messages through XMPP to set things up.
During signup, you’ll pick a real phone number. This is the number people will call to reach you. JMP.chat costs around $2.99/month for a US/Canadian number with unlimited texts and reasonable call rates.
Once your JMP account is set up, JMP will give you SIP credentials. You need these for the Grandstream ATA. The credentials include:
- SIP Server / Registrar: something like
sip.jmp.chat - SIP User ID: your SIP username
- SIP Password: your SIP password
You can find these in the JMP.chat web portal or by messaging the JMP bot in Gajim. Send help to cheogram.com in Gajim to see commands, or check the JMP.chat website for your SIP credentials.
Step 4: Connect the Grandstream ATA
- Plug an Ethernet cable from your router into the WAN/Internet port on the Grandstream ATA.
- Plug your analog phone into the Phone/FXS port on the ATA using a standard phone cable (RJ11).
- Plug in the power adapter.
The ATA will boot up and get an IP address from your router.
Step 5: Find the ATA’s IP Address
You need to access the Grandstream’s web dashboard. To find its IP address:
- Pick up the phone connected to the ATA.
- Press
***on the phone keypad. - Then press
02. - The ATA will read the IP address out loud to you.
Alternatively, check your router’s admin page for connected devices and look for the Grandstream.
You can also use nmap to scan your local network for it:
sudo nmap -sn 192.168.1.0/24
This does a simple ping scan of your network and lists all devices with their IP and MAC addresses. Look for a device with “Grandstream” in the vendor name. Replace 192.168.1.0/24 with your actual subnet if yours is different.
Step 6: Configure the Grandstream Web Dashboard
Open a web browser and go to the IP address from the previous step (for example, http://192.168.1.50).
The default login is:
- Username:
admin - Password:
admin(Or ifadmindoes not work, check the bottom of your Grandstream device for the default password.)
Change the default password when it asks you to.
Now go to the FXS PORT tab (or Account 1 depending on your model). This is where you enter your JMP.chat SIP credentials. Fill in these fields:
- Account Active: Yes
- Primary SIP Server:
sip.jmp.chat - Outbound Proxy:
sip.jmp.chat - SIP User ID: your SIP username from JMP
- Authenticate ID: your SIP username from JMP
- Authenticate Password: your SIP password from JMP
- Account Name / Profile Name: whatever you want (e.g., “JMP”)
Leave the rest of the settings at their defaults unless you know what you’re doing. Click Save and Apply at the bottom of the page.
Step 7: Check Registration Status
After saving, go to the Status page in the Grandstream web dashboard. Under the account info, you should see the registration status say Registered. This means your ATA is connected to JMP.chat’s SIP server and ready to make calls.
If it says Unregistered or Trying, double-check your SIP credentials and make sure your internet connection is working.
Step 8: Make a Call
Pick up the phone and dial a number. If everything is set up right, you’ll hear a dial tone and your call will go through over the internet using your JMP.chat number. When someone calls your JMP number, the phone plugged into the ATA will ring like a normal phone.
Receiving Texts
Phone calls go through the ATA and your physical phone, but text messages go through XMPP. When someone texts your JMP number, the message will show up in Gajim on your computer. You can reply to texts from Gajim as well. This is one of the nice things about JMP.chat is that calls and texts both work, just through different paths.
Summary
That’s it. The whole setup is:
- Get an XMPP account.
- Install Gajim and sign in.
- Sign up for JMP.chat using your XMPP address and get a phone number.
- Get your SIP credentials from JMP.
- Plug in your Grandstream ATA and connect a regular phone.
- Enter your SIP credentials in the Grandstream web dashboard.
- Make and receive calls on your phone, and handle texts in Gajim.
You now have a working VoIP phone that doesn’t depend on any telecom company. It’s cheap, private, and you control it.