Ok I made a small program to test it.
#include <SoftwareSerial.h>
#define rxPin 2
#define txPin 3
int incoming = 0;
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
void setup() {
// define pin modes for tx, rx, led pins:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
Serial.begin(9600);
backlightOn();
}
void loop() {
Serial.println("AT");
incoming = Serial.available();
delay(100);
selectLineOne();
delay(100);
mySerial.print(incoming);
}
It counts up to 127, then stops there. Im guessing the UART buffer is full at 127 ?
Appears to be working correctly, if I ring the phone it sends "RING" over the serial port (well that what shows up in hyperterminal anyway), and "incoming" increases by 8 each time.
Edit: It is now working correctly and printing to the LCD
I will tidy up my code and then post it.
#include <SoftwareSerial.h>
#define rxPin 2
#define txPin 3
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
void setup() {
// define pin modes for tx, rx, led pins:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
Serial.begin(9600);
Serial.println("ATE0"); //Send command to phone to turn off echo
delay(100);
Serial.println("AT+CCLK?"); //Send command to phone to request time and date
}
void loop(){
if(Serial.available() >0 ){
char c = Serial.read();
//selectLineOne();
mySerial.print(c);
}
delay(50); //Need small delay to stop LCD from scrambling.
}
Pic of LCD and output:

Im not sure what the solid blocks are, maybe a linefeed / carrige return?
Time / Date etc:
