xbee: receive messages from an interrupt

I intend to read the data received by the xbee in an interrupt handler.

But as the handler can not use delays, I can not use readPacket (100).

I have the following code:

#include <XBee.h>
#include <avr/power.h>
#include <avr/sleep.h>

XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
ZBRxResponse rx = ZBRxResponse();

int size;
uint8_t buffer[256];


void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
  xbee.begin(Serial1);
  attachInterrupt(0, wake_up_now, LOW  );
}

void wake_up_now() { 
  xbee.readPacket();
  if(xbee.getResponse().isAvailable()){
    if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) {
      xbee.getResponse().getZBRxResponse(rx);
      size = rx.getDataLength();
      for (int i = 0; i < size; i++)  
       buffer[i] = rx.getData(i); 
    }
  }
}

void sleepNow() {
  set_sleep_mode(SLEEP_MODE_IDLE);  

  sleep_enable();          
  power_adc_disable();
  power_spi_disable();
  power_timer0_disable();
  power_timer1_disable();
  power_timer2_disable();
  power_twi_disable();

  sleep_mode();  

  sleep_disable();         
  power_all_enable();
}


void loop() {
  Serial.print("Awake");

  Serial.println(size);
  for (int i = 0; i < size; i++)  
       Serial.println(buffer[i]); 

  Serial.println("Entering Sleep mode");
  delay(100);    
  sleepNow();   
}

Why can not access the message with XBee () inside the handler?

I really need to read the data in the handler, how can I solve this?