Hi, if OpenSer receives a request via TCP with wrong data (for example Via missing) it closed automatically the connection. I'm just experimenting with SIP TCP and I'd like to know the reason for this behaviour, I know that many SIP TCP UAS's have not this behaviour. I also know that other UAS's dissallow empty lines before the message (so disracrd the message) while OpenSer do allow them.
Any explanation/recomendation is welcome. Are those recommendation for a SIP TCP stack written in some RFC?
Thanks a lot.
Hi Iñaki,
This is more a question for the devel list :). Well, as TCP is stream oriented, you need a way to separate the SIP messages from the stream (in UDP this is simple as each package caries only one message); so, in TCP, you heavily relay on Content-Len hdr which tells you the len of the package; and if there is a parse error and the current message could not be properly delimited, it will quite difficult to synchronize back and delimit the following messages. So, the beset way to re-synchronize is to close the connection :).
Regards, Bogdan
Iñaki Baz Castillo wrote:
Hi, if OpenSer receives a request via TCP with wrong data (for example Via missing) it closed automatically the connection. I'm just experimenting with SIP TCP and I'd like to know the reason for this behaviour, I know that many SIP TCP UAS's have not this behaviour. I also know that other UAS's dissallow empty lines before the message (so disracrd the message) while OpenSer do allow them.
Any explanation/recomendation is welcome. Are those recommendation for a SIP TCP stack written in some RFC?
Thanks a lot.
El Wednesday 16 April 2008 11:58:14 Bogdan-Andrei Iancu escribió:
in TCP, you heavily relay on Content-Len hdr which tells you the len of the package; and if there is a parse error and the current message could not be properly delimited, it will quite difficult to synchronize back and delimit the following messages. So, the beset way to re-synchronize is to close the connection
Thanks. I've tyed some UAS's that don't close the connection, but just restart the parsing, so they "forget" all data received and expect to receive a SIP message first_line.
Thanks for your explanation. :)