#include <stdio.h>
#include <malloc.h>

// ??? This is an error to, should be included in osip 
#include <sys/time.h>

#include <osip2/osip.h>
#include <osipparser2/osip_parser.h>
#include <osipparser2/osip_message.h>

int main(int, char**)
{
  parser_init();

  osip_message_t *sip;

  char * buf;

  char msg_test1[] =
    "INVITE sip:server@baldur SIP/2.0\r\n"
    "Call-ID: ea6d8ee3d1821e1d0f20c85edc1745ad@192.168.1.13\r\n"
    "CSeq: 0 INVITE\r\n"
    "From: \"Test\" <sip:test@192.168.1.13>;tag=603\r\n"
    "To: \"192.168.1.13\" <sip:server@baldur>\r\n"
    "Via: SIP/2.0/UDP 192.168.1.13:5060;branch=z9hG4bK6bd42bdd23d11483d9c5d4504473d804\r\n"
    "Max-Forwards: 2\r\n"
    "Route: <sip:192.168.1.11:5060>\r\n"
    "Content-Type: application/sdp\r\n"
    "Contact: \"Test\" <sip:192.168.1.13:5060;transport=udp>\r\n"
    "Content-Length: 110\r\n"
    "\r\n"
    "v=0\r\n"
    "o=- 3307186239 3307186239 IN IP4 192.168.1.13\r\n"
    "s=-\r\n"
    "c=IN IP4 192.168.1.13\r\n"
    "t=0 0\r\n"
    "m=audio 3000 RTP/AVP 8\r\n";

  char msg_test2[] =
    "INVITE sip:server@baldur SIP/2.0\r\n"
    "Call-ID: ea6d8ee3d1821e1d0f20c85edc1745ad@192.168.1.13\r\n"
    "CSeq: 0 INVITE\r\n"
    "From: \"Test\" <sip:test@192.168.1.13>;tag=603\r\n"
    "To: \"192.168.1.13\" <sip:server@baldur>\r\n"
    "Via: SIP/2.0/UDP 192.168.1.13:5060;branch=z9hG4bK6bd42bdd23d11483d9c5d4504473d804\r\n"
    "Max-Forwards: 2\r\n"
    "Route: <sip:192.168.1.11:5060>;lr\r\n"
    "Route: <sip:192.168.1.7:5060>;lr\r\n"
    "Content-Type: application/sdp\r\n"
    "Contact: \"Test\" <sip:192.168.1.13:5060;transport=udp>\r\n"
    "Content-Length: 110\r\n"
    "\r\n"
    "v=0\r\n"
    "o=- 3307186239 3307186239 IN IP4 192.168.1.13\r\n"
    "s=-\r\n"
    "c=IN IP4 192.168.1.13\r\n"
    "t=0 0\r\n"
    "m=audio 3000 RTP/AVP 8\r\n";

  osip_message_init(&sip);
  osip_message_parse2(sip,msg_test1, sizeof(msg_test1));
  osip_message_to_str(sip,&buf);
  fprintf(stdout,"mess:\n%sHERE THE MESSAGE ENDS\n------<<\n",buf);
  osip_message_free(sip);

  osip_message_init(&sip);
  osip_message_parse2(sip,msg_test2, sizeof(msg_test2));
  osip_message_to_str(sip,&buf);
  fprintf(stdout,"mess:\n%sHERE THE MESSAGE ENDS\n------<<\n",buf);
  osip_message_free(sip);
}
