< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[reSIProcate] How do I change the order of SIP headers?


Hey All,

I have a simple little application that sends out a SUBSCRIBE message over TLS. When I create the SIP message, I have a specific order to my SIP headers -- when it goes out the wire, the order has changed.

I create the message like this:

<CODE>
     Data txt("SUBSCRIBE sip:naim@xxxxxxxxxx;transport=TLS SIP/2.0\r\n"
"Contact: <sip:cdrigg@xxxxxxx:5061;transport=TLS;maddr=bldr-ccm51.sip.com;epid=1234567890>\r\n" "Via: SIP/2.0/TLS 10.94.150.51:5061;branch=z9hG4bKnashds8;rport\r\n"
              "Max-Forwards: 70\r\n"
"ms-asserted-verification-level: ms-source-verified-user=verified\r\n" "From: \"Chris\" <sip:cdrigg@xxxxxxx>;tag=1928301774;epid=1234567890\r\n"
              "To: <sip:naim@xxxxxxxxxx>\r\n"
              "Call-ID: a84b4c76e66710\r\n"
              "CSeq: 1 SUBSCRIBE\r\n"
              "User-Agent: SIPimp.org/0.2.5 (curses)\r\n"
              "Event: presence\r\n"
              "Accept: application/pidf+xml\r\n"
              "Content-Length: 0\r\n"
              "\r\n");

auto_ptr<SipMessage> message = auto_ptr<SipMessage>(SipMessage::make(txt, false));

     DebugLog ( << "Sending msg:" << *message );
     sipStack.send( *message );
</CODE>

However, when the message actually goes out the wire, the order of my SIP headers has been completely shifted around into something this:

SUBSCRIBE sip:naim@xxxxxxxxxx;transport=TLS SIP/2.0
To: <sip:naim@xxxxxxxxxx>
From: "Chris" <sip:cdrigg@xxxxxxx>;tag=1928301774;epid=1234567890
Via: SIP/2.0/TLS 10.94.150.51:5061;branch=z9hG4bKnashds8;rport
Call-ID: a84b4c76e66710
CSeq: 1 SUBSCRIBE
Contact: <sip:cdrigg@xxxxxxx:5061;transport=TLS;maddr=bldr-ccm51.sip.com;epid=1234567890>
Max-Forwards: 70
Accept: application/pidf+xml
User-Agent: SIPimp.org/0.2.5 (curses)
Event: presence
Content-Length: 0
ms-asserted-verification-level: ms-source-verified-user=verified

How do I change the order after calling SipMessage::make()? Or how do I prevent the stack from changing the order on me?

Thanks,
Chris