Reference.GSMVCSVoiceCall History

Hide minor edits - Show changes to markup

November 16, 2012, at 01:01 AM by Scott Fitzgerald -
Changed lines 7-8 from:

Tells the server to stop listening for incoming connections.

to:

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.

Changed lines 11-12 from:

voice.voiceCall()

to:

voice.voiceCall(number)

Changed lines 14-15 from:
to:
  • number : char array. The number to call.
Changed lines 17-18 from:
to:

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.

Changed lines 23-113 from:
to:
  1. include <GSM.h>

// PIN Number

  1. 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;
    }
  } 

}

October 26, 2012, at 05:35 PM by Scott Fitzgerald -
Added lines 1-26:

Share