mirror of
https://github.com/esp8266/Arduino.git
synced 2025-07-30 16:24:09 +03:00
GSM library to the new format and some strings adaptations
This commit is contained in:
116
libraries/GSM/examples/MakeVoiceCall/MakeVoiceCall.ino
Normal file
116
libraries/GSM/examples/MakeVoiceCall/MakeVoiceCall.ino
Normal file
@ -0,0 +1,116 @@
|
||||
/*
|
||||
Make Voice Call
|
||||
|
||||
This sketch, for the Arduino GSM shield, puts a voice call to
|
||||
a remote phone number that you enter through the serial monitor.
|
||||
To make it work, open the serial monitor, and when you see the
|
||||
READY message, type a phone number. Make sure the serial monitor
|
||||
is set to send a just newline when you press return.
|
||||
|
||||
Circuit:
|
||||
* GSM shield
|
||||
* Voice circuit.
|
||||
With no voice circuit the call will send nor receive any sound
|
||||
|
||||
|
||||
created Mar 2012
|
||||
by Javier Zorzano
|
||||
|
||||
This example is in the public domain.
|
||||
*/
|
||||
|
||||
// libraries
|
||||
#include <GSM.h>
|
||||
|
||||
// PIN Number
|
||||
#define PINNUMBER ""
|
||||
|
||||
// initialize the library instance
|
||||
GSM gsmAccess; // include a 'true' parameter for debug enabled
|
||||
GSMVoiceCall vcs;
|
||||
|
||||
String remoteNumber = ""; // the number you will call
|
||||
char charbuffer[20];
|
||||
|
||||
void setup()
|
||||
{
|
||||
|
||||
// initialize serial communications and wait for port to open:
|
||||
Serial.begin(9600);
|
||||
while (!Serial) {
|
||||
; // wait for serial port to connect. Needed for Leonardo only
|
||||
}
|
||||
|
||||
Serial.println("Make Voice Call");
|
||||
|
||||
// connection state
|
||||
boolean notConnected = true;
|
||||
|
||||
// Start GSM shield
|
||||
// If your SIM has PIN, pass it as a parameter of begin() in quotes
|
||||
while(notConnected)
|
||||
{
|
||||
if(gsmAccess.begin(PINNUMBER)==GSM_READY)
|
||||
notConnected = false;
|
||||
else
|
||||
{
|
||||
Serial.println("Not connected");
|
||||
delay(1000);
|
||||
}
|
||||
}
|
||||
|
||||
Serial.println("GSM initialized.");
|
||||
Serial.println("Enter phone number to call.");
|
||||
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
|
||||
// add any incoming characters to the String:
|
||||
while (Serial.available() > 0)
|
||||
{
|
||||
char inChar = Serial.read();
|
||||
// if it's a newline, that means you should make the call:
|
||||
if (inChar == '\n')
|
||||
{
|
||||
// make sure the phone number is not too long:
|
||||
if (remoteNumber.length() < 20)
|
||||
{
|
||||
// let the user know you're calling:
|
||||
Serial.print("Calling to : ");
|
||||
Serial.println(remoteNumber);
|
||||
Serial.println();
|
||||
|
||||
// Call the remote number
|
||||
remoteNumber.toCharArray(charbuffer, 20);
|
||||
|
||||
|
||||
// Check if the receiving end has picked up the call
|
||||
if(vcs.voiceCall(charbuffer))
|
||||
{
|
||||
Serial.println("Call Established. Enter line to end");
|
||||
// Wait for some input from the line
|
||||
while(Serial.read()!='\n' && (vcs.getvoiceCallStatus()==TALKING));
|
||||
// And hang up
|
||||
vcs.hangCall();
|
||||
}
|
||||
Serial.println("Call Finished");
|
||||
remoteNumber="";
|
||||
Serial.println("Enter phone number to call.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Serial.println("That's too long for a phone number. I'm forgetting it");
|
||||
remoteNumber = "";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// add the latest character to the message to send:
|
||||
if(inChar!='\r')
|
||||
remoteNumber += inChar;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user