>>1) SIP client and server use one TCP connection or several >>separate TCP connections for sending or receiving SIP messages >>during a transaction procedure, i.e. sending REQUEST uses a >>TCP connection, and close it, and then create another TCP >>connection for sending RESPONSE?
The problem is that different implementations behave differently. Some implementations open a TCP connection for each new request. Others will try to keep a TCP connection open for the duration of the call and send messages down the same connection. You have to handle all possible cases. So for example, you could try to open a connection and use that for all your messages, but you'd have to be able to handle the connection being torn down and be able to receive messages on other TCP connections. What you can't do is assume a single TCP connection per session. >>2) Could each subscriber's SIP register and calls share a TCP connection? yes, it could. but it might not be possible - see answer 1. >> after a successful registration, SIP client will go on to keep >> the TCP connection for subsequent calls until de-registration? this idea is more or less how the "outbound draft" works http://www.ietf.org/internet-drafts/draft-ietf-sip-outbound-11.txt the features in the draft aid with SIP signalling NAT traversal for a UA behind a firewall and a SIP registrar in front of it. >>3) if a TCP connection is maintained between SIP client and server, >> is re-register not needed yet because we could check TCP status? No, you always need to re-register. The SIP protocol requires registration. One more document that might be of interest is "Connection Reuse in the Session Initiation Protocol". This is recommended behaviour for SIP proxies http://tools.ietf.org/html/draft-ietf-sip-connect-reuse-08 I'm not sure of the status of the drafts - they might be expired but they are still useful to get an idea of some of issues involved. Regards, Attila -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of jc.huang Sent: 08 February 2008 15:25 To: [email protected] Subject: [Sip-implementors] SIP TCP connection Hi All, I want to know how to implement TCP connections in SIP, are there some documents describe them? I saw some people in the mailist ever discussed it, but I don't know their conclusions? I wanna know, 1) SIP client and server use one TCP connection or several separate TCP connections for sending or receiving SIP messages during a transaction procedure, i.e. sending REQUEST uses a TCP connection, and close it, and then create another TCP connection for sending RESPONSE? 2) Could each subscriber's SIP register and calls share a TCP connection? i.e., after a successful registration, SIP client will go on to keep the TCP connection for subsequent calls until de-registration? 3) If 2) yes, how about re-register process? if a TCP connection is maintained between SIP client and server, is re-register not needed yet because we could check TCP status? please tell me your opinions or implemations about it. Thanks and Regards, JC _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
