Summary of Make Voice Call using Arduino
This project demonstrates how to make a voice call using an Arduino with a GSM shield. By connecting a microphone and speaker to the GSM shield and using the GSM library, the Arduino can dial a phone number entered via the serial monitor. The sketch initializes the GSM module, waits for network connection, and then places a voice call while enabling audio communication through the attached peripherals.
Parts used in the Make Voice Call using Arduino Project:
- Arduino board
- Arduino + Telefonica GSM/GPRS Shield
- Microphone attached to the GSM shield
- Speaker attached to the GSM shield
- SIM card
This sketch connects a voice call from your GSM shield and Arduino to a remote phone number entered through the serial monitor. You’ll need to attach a speaker and microphone to hear the connected phone and send your voice.
First, import the GSM library
#include <GSM.h>
SIM cards may have a PIN number that unlocks their functionality. Define the PIN for your SIM. If your SIM has no PIN, you can leave it blank :
#define PINNUMBER ""
Initialize instances of the classes you’re going to use. You’re going to need both the GSM and GSMVoiceCall class.
GSMVoiceCall vcs;
Create some variables to store the phone number you want to call :
char charbuffer[20];
In setup, open a serial connection to the computer. You’ll use this to send a phone number to the Arduino. After opening the connection, send a message to the Serial Monitor indicating the sketch has started.
void setup(){
Serial.begin(9600);
Serial.println(“Make Voice Call”);
Create a local variable to track the connection status. You’ll use this to keep the sketch from starting until the SIM is connected to the network :
Connect to the network by calling gsmAccess.begin(). It takes the SIM card’s PIN as an argument. By placing this inside a while() loop, you can continually check the status of the connection. When the modem does connect, gsmAccess() will return GSM_READY. Use this as a flag to set the notConnected variable to true or false. Once connected, the remainder of setup will run.
Circuit
image of the Arduino GSM Shield on top of an Arduino Uno
{
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
notConnected = false;
else
{
Serial.println(“Not connected”);
delay(1000);
}
}
Hardware Required
- Arduino board
- Arduino + Telefonica GSM/GPRS Shield
- Microphone and speaker attached to the GSM shield
- SIM card
For more detail: Make Voice Call using Arduino


