Reference    Language | Libraries | Comparison | Changes
GSM : GSM_SMS class
remoteNumber()
Description
Retrieves the phone number an from an incoming SMS message and stores it in a named array.
Syntax
SMS.remoteNumber(number, size)
Parameters
- number : char array, a named array that will hold the sender's number
- size : int, the size of the array
Returns
int 
In asynchronous mode, remoteNumber() 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 it successfully  executes, and 0 if it does not.
Example
  #include <GSM.h>
// PIN Number
#define PINNUMBER ""
// initialize the library instance
GSM gsmAccess; // include a 'true' parameter for debug enabled
GSM_SMS sms;
char remoteNumber[20];  // Holds the emitting number
void setup() 
{
  // initialize serial communications
  Serial.begin(9600); 
  Serial.println("SMS Messages Receiver");
  // 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("Waiting for messages");
}
void loop() 
{
  char c;
  // If there are any SMSs available()  
  if (sms.available())
  {
    Serial.println("Message received from:");
    // Get remote number
    sms.remoteNumber(remoteNumber, 20);
    Serial.println(remoteNumber);
    // This is just an example of message disposal    
    // Messages starting with # should be discarded
    if(sms.peek()=='#')
    {
      Serial.println("Discarded SMS");
      sms.flush();
    }
    // Read message bytes and print them
    while(c=sms.read())
      Serial.print(c);
    Serial.println("\nEND OF MESSAGE");
    // delete message from modem memory
    sms.flush();
    Serial.println("MESSAGE DELETED");
  }
  delay(1000);
}
 
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.