now whats the problem
![]()
#include <GSM.h>
#define PINNUMBER ""
// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
 {'1','2','3'},
 {'4','5','6'},
 {'7','8','9'},
 {'*','0','#'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
 // initialize serial communications and wait for port to open:
 Serial.begin(9600);
 while (!Serial) {
  ; // wait for serial port to connect. Needed for Leonardo only
 }
 Serial.println("SMS Messages Sender");
 // 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");
}
void loop()
{
 Serial.print("Enter a mobile number: ");
 char remoteNum[10];// telephone number to send sms
Â
 // char* bar = remoteNum;
 readSerial(remoteNum);
 Serial.println(remoteNum);
 //char foo[2];
//char* bar = foo;
 // sms text
 Serial.print("Now, enter SMS content: ");
 char txtMsg[200];
// readSerial(txtMsg);
 Serial.println("SENDING");
 Serial.println();
 Serial.println("Message:");
 Serial.println(txtMsg);
 // send the message
 sms.beginSMS(remoteNum);
 sms.print(txtMsg);
 sms.endSMS();
 Serial.println("\nCOMPLETE!\n");
 remoteNum = keypad.getKey();
Â
 if (remoteNum){
  Serial.println(remoteNum);
 }
}
int readSerial(char result[])
{
 int i = 0;
 while (1)
 {
  while (Serial.available() > 0)
  {
   char inChar = Serial.read();
   if (inChar == '\n')
   {
    result[i] = '\0';
    Serial.flush();
    return 0;
   }
   if (inChar != '\r')
   {
    result[i] = inChar;
    i++;
   }
  }
 }
}