problem in usart library and gsm code

hello i have some error either in this library or code. please help me
.c library

#include "uart_lib.h"

void set_uartbaud(int BAUD) {
	UBRR0H = (unsigned char) ((FOSC / 16 / BAUD - 1) >> 8);
	UBRR0L = (unsigned char) (FOSC / 16 / BAUD - 1);
	 UCSR0B |= (1<<RXEN0)  | (1<<TXEN0);
	 UCSR0C |= (1<<UCSZ00) | (1<<UCSZ01);
void disable_uart() {
	UCSR0B &= ~(1 << TXEN0);
	UCSR0B &= ~(1 << RXEN0);
}

void enable_uart_txcint() {
	UCSR0B |= (1 << TXCIE0);
}

void enable_uart_rxcint() {
	UCSR0B |= (1 << RXCIE0);
}

void enable_uart_udreint() {
	UCSR0B |= (1 << UDRIE0);
}

void disable_uart_txcint() {
	UCSR0B &= ~(1 << TXCIE0);
}

void disable_uart_rxcint() {
	UCSR0B &= ~(1 << RXCIE0);
}

void disable_uart_udreint() {
	UCSR0B &= ~(1 << UDRIE0);
}

void sendchar_uart(char data) {
	int temp;
	temp = UCSR0A & (1 << UDRE0);
	temp = temp >> UDRE0;
	while (!temp)
		; // wait for UDR empty
	UDR0 = data; //transmits data
}

char getchar_uart() {
	while ((UCSR0A & (1 << RXC0)) == 0)
		; // Wait until a byte has been received
	return UDR0; // Return received data
}

void sendstring_uart(char v[]) {
	int i;
	for (i = 0; i < strlen(v); i++) {
		sendchar_uart(v[i]);
		_delay_ms(10);
	}
}

.h library

#include <avr/io.h>
#include <util/delay.h>

#define FOSC 1843200// Clock Speed

void set_uartbaud(int);

void disable_uart();

void enable_uart_txcint();

void enable_uart_rxcint();

void enable_uart_udreint();

void disable_uart_txcint();

void disable_uart_rxcint();

void disable_uart_udreint();

void sendchar_uart(char);

char getchar_uart();

void sendstring_uart(char[]);

my code to hang a call from particular no.

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "uart_lib.h"
#include "string.h"
#define Asize 30
unsigned char mob[10]="          ";
int index=0,a=0,b=0;
char A[Asize]="Balvendra",status=0,line=0;
ISR(USART_RXC_vect)
{
	char c=UDR0;
		if(index<16)
			A[index]=c;
		index++;
		if (c==0x0A)
		{
			status|=1;
			index = 0;
			line=0;
			}

		else if(index == 5)
		{
				 if((strncmp(A,"+CMTI",5) == 0))
				 {
					 status|=4;
					 line=1;
					 }
			else if((strncmp(A,"+CLIP",5) == 0))
			{
				status|=2;
				line=1;
				}
			else if((strncmp(A,"NO CA",5) == 0))
			{
				status&=~2;
				line=1;
				}
		}
		else if(index>11&index<22&(status>>1))mob[index-12]=c;
	}
int main(void)
{

	set_uartbaud(9600);
	enable_uart_rxcint();
	sei();
	_delay_ms(8000);
	_delay_ms(8000);
	_delay_ms(8000);

	sendstring_uart("AT\r\n");
	sendstring_uart("at+clip=1\r\n");
	_delay_ms(2000);

	while(1)
	{
		if(status==3)
		{
			_delay_ms(500);
			if(status>>1&(strncmp(mob,"**********",10) == 0))
										{
								        _delay_ms(8000);


								    	_delay_ms(5000);
								    	sendstring_uart("ath\r\n");
								    	_delay_ms(2000);
status=1;
	         }
		}
    }
}

so please tell me where is the problem

    sendstring_uart("AT\r\n");
    sendstring_uart("at+clip=1\r\n");

I don't suppose it matters what the device responded to these strings with. Well, actually, it matters a great deal.

so please tell me where is the problem

The code you posted does something (in a far more complicated way than needed). You didn't tell us what it does.

You expect it to do something. You didn't tell us what you expect it to do.

So, really, how can you expect us to help?

hello i want to store a pin status for atmega32(i.e PINC.1) in eeprom so the voltage on this pin is as that was before power off so how i store it. and also i want to store a mobile number once and it remain all time of life cycle(for gsm based project) and compare it when a call will make on gsm modem so give me some code idea

so give me some code idea

The documentation of EEPROM.read(), EEPROM.write(), EEPROM.put(), and EEPROM.get() isn't sufficient?