On Mon, Oct 10, 2011 at 11:27 PM, Sundar Subramaniyan <sundar.subramaniyan at gmail.com> wrote: > SIP/2.0 200 OK > Via: SIP/2.0/TCP > 127.0.0.1:60000;rport=60000;received=127.0.0.1;branch=z9hG4bKPjiNeUsXjdMuRBU2j.KGSI94O1i7pQoYqc > Call-ID: 2mdIf8lexOTBIMg2pPgKOBdDB3SowCcf > From: <sip:127.0.0.1>;tag=PKcMBzp6yhIZQG-du1TsYkW1MPmX6L5V > To: <sip:127.0.0.1>;tag=PKcMBzp6yhIZQG-du1TsYkW1MPmX6L5V > CSeq: 124 INVITE > Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE > Contact: <sip:127.0.0.1>;transport=tcp > > > I noticed that once the route set is updated and frozen, the dialog->target > is loaded with the URI present in the remote->contact_hdr->contact_uri.(not > sure if the variable names are correct) > It seems that while cloning the contact header, the ";transport=tcp" part is > not cloned. I dont know if this is done purposefully. But I guess it is > normal. > > So, even though the UAS sends the answer with required parameters, the UAC > is not able to reply ACK in TCP transport. > Your 200/OK is malformed. If you want TCP, the Contact header should be: Contact: <sip:127.0.0.1;transport=tcp> instead of Contact: <sip:127.0.0.1>;transport=tcp Benny