Load Control using SIM

BEGAIN:
    usart_puts("AT\r\n");//Response OK
	_delay_ms(500);
	buffer=strstr(receive,"OK");
	if(buffer[0]=='O' && buffer[1]=='K')
	LCD_write_string(1,1,"GSM Module found");
	else 
	goto BEGAIN;
	cont=0; //initial counter
	usart_puts("ATE0\r\n");//Echo mode deactivate
volatile char display[17];
sprintf(display,"ATD%s;\r\n",mobile_number);
usart_puts(display);
usart_puts("ATH\r\n");
usart_puts("ATA\r\n");
receive[cont++] = UDR; //Read the data from buffer
UCSRA|=(1<<RXC); //Clear the interrupt flag
volatile uint8_t len,num_msg;
volatile char test[20],*buffer,display[120],number[12],msg[80];
  if(strstr(receive,"CMTI")){
      LCD_Clear();
      cont=0; //initial counter
      sprintf(test,"AT+CMGR=%d\r\n",num_msg);
      usart_puts(test);//Read SMS
      sprintf(display,"%s",receive);
      if(strstr(display,"READ")){
            for(uint8_t i=0;i<=120;i++){
                 if(display[i]=='+' && display[i+1]=='8' && display[i+2]=='8'){
                      for(uint8_t j=0;j<11;j++)
                      number[j]=display[i+3+j]; //11 digit number
                      }
                 if(i>40 && display[i]=='\r'){
                      for(uint8_t k=0;k<40;k++)
                      msg[k]=display[i+k+2];        //sms display
                      break;
                }
            }
    }
  LCD_write_string(1,1,number);
  LCD_write_string(1,2,msg);