retrieveCallingNumber()
Description
Retrieves the calling number, and stores it.
Syntax
voice.retrieveCallingNumber(number, size)
Parameters
number
: char array to hold the number
size
: the size of the array
Returns
int
In asynchronous mode, retrieveCallingNumber()
returns 0 if the last command is still executing, 1 if success, and >1 if there is an error. In synchronous mode, it returns 1 if the number is obtained 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; char numtel[20]; // buffer for the incoming call void setup() { // initialize serial communications Serial.begin(9600); Serial.println("Receive 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); } } // This makes sure the modem notifies correctly incoming events vcs.hangCall(); Serial.println("Waiting Call"); } void loop() { // Check the status of the voice call switch (vcs.getvoiceCallStatus()) { case IDLE_CALL: // Nothing is happening break; case CALLING: // This should never happen, as we are not placing a call Serial.println("CALLING"); break; case RECEIVINGCALL: // Yes! Someone is calling us Serial.println("RECEIVING CALL"); // Retrieve the calling number vcs.retrieveCallingNumber(numtel, 20); // Print the calling number Serial.print("Number:"); Serial.println(numtel); // Answer the call, establish the call vcs.answerCall(); break; case TALKING: // In this case the call would be established Serial.println("TALKING. Enter line to interrupt."); while(Serial.read()!='\n') delay(100); vcs.hangCall(); Serial.println("HANG. Waiting Call."); break; } delay(1000); }
See also
- GSMVoiceCall
- getVoiceCallStatus()
- ready()
- voiceCall()
- answerCall()
- hangCall()
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.