rem: parse_headers(p_msg, HDR_VIA|HDR_TO|HDR_FROM|HDR_CALLID|HDR_CSEQ );
add: parse_headers(p_msg, HDR_EOH );
context: struct cell*  build_cell( struct sip_msg* p_msg ){   struct cell*  new_cell;   int                i;    /* do we have the source for the build process? */   if (!p_msg)      return 0;   /* allocs a new cell */   new_cell = sh_malloc( sizeof( struct cell ) );   if  ( !new_cell )      return 0;   /* filling with 0 */   memset( new_cell, 0, sizeof( struct cell ) );   /* hash index of the entry */   new_cell->hash_index = hash( p_msg->callid->body , get_cseq(p_msg)->number );   /* mutex */   init_cell_lock(  new_cell );   /* ref counter is 0 */   /* all pointers from timers list tl are NULL */   new_cell->wait_tl.payload = new_cell;   new_cell->dele_tl.payload = new_cell;   /* inbound request */   /* force parsing all the needed headers*/   parse_headers(p_msg, HDR_VIA|HDR_TO|HDR_FROM|HDR_CALLID|HDR_CSEQ );   new_cell->inbound_request =  sip_msg_cloner(p_msg) ;   /* inbound response is NULL*/   /* status is 0 */   /* tag pointer is NULL */   //if ( p_msg->tag )      TO DO !!!!!!!!!!!!!!!!!!!!!!   //   new_cell->tag  =  &(new_cell->inbound_request->tag->body);   /* nr of outbound requests is 0 */   /* all pointers from outbound_request array are NULL */   /* all pointers from outbound_response array are NULL */   return new_cell;}