I won't know for certain until I've implemented it, but I've marked ppumkin's answer as The Answer.

I will have a Huawei 3G (or GSM) dongle attached to my raspberry pi. I haven't purchased it yet, since the model may be determined by the answer to this question.

I would like my raspberry pi to be able to receive a phone call through the dongle, using a headset to allow the user to hold a conversation. It has no need to initiate the phone call.

Basically I'd like my raspberry pi to act as a voice-only phone. Any help would be greatly appreciated.

This project uses Python on Raspbian Wheezy.

One more note: I'd rather not use a full PBX system like Asterisk because this functionality forms only part of the overall system.

EDIT: To narrow the question, I'm concerned mainly with the communication between the dongle and my python program. I expect that playing sounds and capturing microphone input is widely documented. To be more specific: If a call is made to the GSM dongle attached to my pi, how do I get a python script to answer the call?

EDIT 2: This list of dongles that can be used with Asterisk leads me to believe that it is possible (thanks ppumkin)

A little background on the project
I will be putting one piece of equipment each in a series of rural classroooms in Southern Africa (to start with). The kit will consist of a projector, an Rpi, and a GSM dongle. The purpose of the kit is to allow teachers anywhere in the world to hold remote lessons with students there who would not otherwise have access to education. Since the kit will have to be built through donations, the price of the components is crucial.

The teachers will have 2-way voice communication and 1-way blackboard. The blackboard will be controlled via SMS, but the voice communication needs to be done over GSM voice. The geographic locations that I'm looking at will have GSM coverage but, if anything at all, they will have at most 2G data coverage.

All communication over GSM will come from a server which will be hosted in the same country as the classrooms and the link between that server and the teachers will be over TCP/IP.

  • Can you narrow your "question" to single problem? for the starters you will need usb sound card for audio input, but beside that you should be fine
    – RooTer
    Sep 12, 2013 at 9:13
  • I'm interested in your question as I've the same situation. Where you able to make it work? The dongle list page is down, can you provide the product # so i can research a bit? Also, have you thinked of arduino?
    – Arnold Roa
    Oct 26, 2016 at 21:26
  • Were you able to accomplish this task? My aim is quite opposite to you, I wanna initiate phone calls from Raspberry? Can you, please, share the results of your research?
    – Suncatcher
    Apr 29, 2017 at 9:08

1 Answer 1


For the default use of them that is not possible with GPRS/EDGE/3G/HSDPA/4G dongles. They are designed for data only.

But as pointed out by the OP there does seem to some development for Huawei dongles. What it requires though:

  1. Check if the dongle supports voice. Some microchips have the audio processor built in with everything else but the firmware disables it usage.
  2. Flash the dongle with a custom firmware that will enable the audio hardware and API

Loading custom firmware might brick (render the device useless) so take extreme care before trying anything like this.

It is the flashing of custom firmware that will unlock the GSM API and the use of a experimental Asterisk channel provider chan_dongle.

It all seems experimental at the moment, however looking at the site people manage to set up 48 GSM channels using Asterisk! Pretty impressive...

I suspect Asterisk does all the encoding and decoding of audio and passes the data to the custom firmware which allows you to make a normal phone call.

The alternatives

  1. What you can do though is run Asterisk on the Pi and connect to VoiP servers.But there is no microphone the Pi and USB Audio devices seem to cause allot of problems with recording audio.
  2. Just buy a cheap mobile phone if you need to make phone calls.
  3. You can buy a hardware GSM gateway. You put sim cards in there and the hardware does all the work. You just use Asterisk to connect to it like a VoiP connection.
  • Will it still not be possible with one of the dongles on this list? I'm not just wanting to use the pi as a mobile phone - this is just one bit of the functionality that will make up the whole system.
    – neuro
    Sep 14, 2013 at 20:36
  • That is quite interesting. I have never seen that before and I wonder how the voice is possible. Possibly these have some way to interface the GSM API but it seems like it relies on software encoding. I will try to look into it my self and see what the implications and requirements are. But that is a good find and solicits your question. Can you please rephrase and add that to your question so other people will better understand the scope of it.
    – Piotr Kula
    Sep 15, 2013 at 10:07
  • Thanks a lot for looking into it, ppumkin. Do you know if there's any way in which I'll be able to access chan_dongle? I've added a description of my project so that you know what I'm trying to accomplish.
    – neuro
    Sep 17, 2013 at 6:35
  • Neuro. You have to install asterisk then chan dongle on asterisk. Asterisk is easy to install on the Pi but configuring everything will be more difficult. You can also use GPRS for the blackboard. GPRS works besides GSM on 1 channel at 57kbits. (5~7 kilobytes per second) That should be ok for x,y coordinate transmissions. Good luck.
    – Piotr Kula
    Sep 17, 2013 at 8:56
  • Thanks ppumkin. I did consider GPRS originally but 90% of the locations that I'm hoping to use it in don't even have that. However, as of 2006, 40% of rural settlements throughout Africa had basic GSM coverage, so that's what I'm focusing on. In addition, I'm hoping that only the sim card on the server will incur any costs - it's free to receive calls and SMSes, but it costs to receive GPRS traffic.
    – neuro
    Sep 17, 2013 at 9:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.