hangCall()
Description
Hang up an established call or during incoming rings. Depending on the modems mode (synchronous or asynchronous) the method will return differently, see below for more detail.
Syntax
voice.hangCall()
Parameters
none
Returns
int
In asynchronous mode, hangCall()
returns 0 if the last command is still executing, 1 if there is success, and >1 in case of an error. In synchronous mode, it returns 1 if the call is hung, 0 if not.
Example
// libraries #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()
- retrieveCallingNumber()
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.