Hello.
I’m looking for a 4G / USB / LTE dongle like that,that supports voice (circuit-switched voice) or VoLTE / PCM audio / audio over USB. The module/firmware model I need should be usable in EU or even better,globally.
I plan to use it with FreeBSD because I’m building a phablet based on that OS. What I want to do is to find a relatively easy “path” to add the opportunity for the phablet to place and receive phone calls by using,for example,some kind of basic script. For example like the one below :
#!/usr/bin/env python3
import serial
import time
# Adjust to your modem’s AT command port
MODEM_TTY = "/dev/ttyUSB2"
BAUD = 115200
def send_at(command, wait=1):
ser.write((command + "\r").encode())
time.sleep(wait)
resp = ser.readlines()
return [line.decode(errors="ignore").strip() for line in resp]
def dial(number):
print(f"📞 Dialing {number}...")
print("\n".join(send_at(f"ATD{number};")))
def answer():
print("✅ Answering call...")
print("\n".join(send_at("ATA")))
def hangup():
print("📴 Hanging up...")
print("\n".join(send_at("ATH")))
def check():
print("🔍 Checking modem...")
print("\n".join(send_at("AT")))
def monitor():
print("📡 Monitoring incoming calls (Ctrl+C to stop)...")
try:
while True:
line = ser.readline().decode(errors="ignore").strip()
if line:
print(f"<< {line}")
except KeyboardInterrupt:
print("\n🛑 Monitor stopped.")
if __name__ == "__main__":
try:
ser = serial.Serial(MODEM_TTY, BAUD, timeout=1)
except Exception as e:
print(f"❌ Could not open {MODEM_TTY}: {e}")
exit(1)
while True:
print("\n=== Edge-V Phone Menu ===")
print("1. Check modem")
print("2. Dial number")
print("3. Answer call")
print("4. Hang up")
print("5. Monitor incoming calls")
print("6. Exit")
choice = input("Select option: ")
if choice == "1":
check()
elif choice == "2":
number = input("Enter phone number: ")
dial(number)
elif choice == "3":
answer()
elif choice == "4":
hangup()
elif choice == "5":
monitor()
elif choice == "6":
break
else:
print("❓ Invalid choice")
I use “ho mobile”. It supports VoLTE (Voice over LTE), which enables high-quality calls when connected to a 4G/5G network.
According with this post :
the Q-EC25 seems to support VoLTE.
What I want more ?
I’ve asked to ChatGPT :
Quectel EC25-E is a 4G LTE USB Dongle with EC25-E LCC module and only supports AT commands Voice. But for PCM audio, it doesn’t support it. So,can it be used to place and receive phone calls ?
and it replied like this :
However, PCM/I²S digital audio interfaces are not available on the EC25-E. That means you cannot directly attach a microphone/speaker at the hardware level.
So,I need to know which model supports the “PCM/I²S digital audio interfaces”.
According with the specs of the Quectel EC25 Series LTE
This (model EC25-E) seems to be the best option for me :
h t t p s : / / i b b . c o / v C 0 G r p z R
Anyway,as u can see on this table :
h t t p s : / / i b b . c o / F L j q c v X J
there aren’t drivers for FreeBSD. Is there some chances that I can place and receive phone calls attaching the dongle via USB to the radxa zero 3W or to the Khadas Edge-V if there aren’t drivers for FreeBSD ? Without drivers,the python code that I have shared for placing and receiving will work ? What kind of limitations will I encounter ?
Very thanks.