Home Page | Language Reference (extended) | SD Reference | Libraries | Comparison | Changes
GSM :
GSMVoiceCall
class
voiceCall()
Description
Places a voice call to a specified number. The methods returns different information depending on the GSM connection mode (synchronous or asynchronous). See below for details.
Syntax
voice.voiceCall(number)
Parameters
- number : char array. The number to call.
Returns
int
In asynchronous mode, voiceCall() returns 0 if last command is still executing, 1 if successful, and >1 in case of an error. In synchronous mode, it returns 1 if the call is placed, 0 if not.
Example
#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
Serial.begin
(
9600
)
;
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;
}
}
}
GSM :
GSMVoiceCall
class
voiceCall()
Description
Places a voice call to a specified number. The methods returns different information depending on the GSM connection mode (synchronous or asynchronous). See below for details.
Syntax
voice.voiceCall(number)
Parameters
- number : char array. The number to call.
Returns
int
In asynchronous mode, voiceCall() returns 0 if last command is still executing, 1 if successful, and >1 in case of an error. In synchronous mode, it returns 1 if the call is placed, 0 if not.
See Also
Reference Home
Corrections, suggestions, and new documentation should be posted to the Forum.
The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.