Professional Documents
Culture Documents
Can any one tell why a 3 way handshake is required for INVITE ???even though SIP can
be tramitted over TCP
I assume you are talking about a TCP 3 way handshake when you refer to the SIP over TCP. That
3 way handshake establishes communication at the network transport layer and not at the SIP
application layer. To establish a call, you will still need a SIP 3 way handshake at the application
layer.
Hi,
There could be several reasons for three way handshake needed for INVITE. Some of them are:
1. Three way handshake is a procedure to synchronize requests and responses. It is used even
in TCP as well.
2. It may not be possible to establish VoIP call just with INVITE/200 OK. Some times mis-matches
in SDP negotiation needs confirmation from caller or calle. These can be sorted out by having
ACK message.
3. Media negotiaton offer/answer model needs both parties agreeing on common media codecs
and formats. There is a possibility that one party sends its capabilities and other sends in
different format (With priority). Caller may not agree and would like to have his own priority. ACK
message will help in this.
My assumption is that caller and calle sync up may not be achieved just with INVITE/18X/200OK.
Needs final confirmation from Caller if there is a disagreement.
And also ACK is a response to 200 OK. It is kind of response to 200 OK.
Rgds,
Narasimham.
may be this can help you to understand why we require Three-Way handshake in invite message.
INVITE is the only method that uses a three-way handshake as opposed to a two-way handshake
(METHOD-final response). Certain characteristics set the INVITE method apart from other methods. When
a client issues a request other than INVITE, it expects a fast response from the server. However, the
response from an INVITE request might take a long time. When Bob calls Laura, she may have to fish her
SIP phone out of her coat pocket and press buttons, so the 200 OK response that will come will be more
or less delayed. Sending an ACK from the client to the server when the response is received lets the server
know that the client is still there and that the session has been successfully established. The three-way
handshake also enables the implementation of forking proxies. When one of these forks a request, the client
who issued the request will obtain several responses from different servers. Sending an ACK to every
destination that has responded is essential to ensuring SIP operation over unreliable protocols such as UDP.
Besides the speedy session setup and forking, INVITEs three-way handshake also enables us to send an
INVITE without a session description, which will be sent later in the ACK. This feature is useful, for
example, when SIP interworks with other signaling protocols that use different message sequencing
Allow: Allow header is used to mention what methods an UA does support. And this methods can be used
in that particular dialog. If the Allow header is not present, then it doesnt mean that UA wont support any
methods.
Ex: Allow: INVITE,BYE,CANCEL.
Supported: It says what extensions can be supported by an UA.
Ex: Supported: 100rel
Require: It lists all the extensions that other UA must support in order to process the request. Another
similar header Proxy-Require is also there. In this case Proxy should support the extensions listed to
process the request received.
Options : Its a method which is used to query the capabilities of the other party. Say if want to know
whether or not the end party supports G711 codec (it can also query Method, Extensions etc.), you can send
OPTIONS method querying the capabilities. In this scenario no need to send INVITE. This is one of the
advantages of OPTIONS method. I think its mandatory that every UA should support OPTIONS.
Hi all
If any SIP packet got retransmitted because of some reason , do we
need to respond for every retransmitted packet or just accept one and
ignore others? Example: If any SIP server got same PUBLISH packet two
times which is retransmitted,do we need to send back 200 OK for both ,or
send 200 OK for one and ignore the second.? Please help me on this...
Standards Track
SIP: Session Initiation Protocol
[Page 131]
June 2002
Hi All
I have installed SIPp on my machine. I have installed Asterix on my machine.
The machine runs on Windows XP.Is it possible to replicate the bellow scenario
from
a single machine using OPENSER or ASTERIX for learning/testing purpose.
<SIPp UAC>-----<OPENSER(Proxy)>--------<SIPp UAS>
Yes. It is possible to run SIPp UAC, SIP Proxy and SIPp UAS in same machine provided they use
different UDP ports.
SIPP has command line options where we can mention next level IP address and port to be
contacted. It may be need to configure XML files provided by SIPp.
Rgds,
Narasimham.