When we talk about SIP call flow there are two important things
that need to be understood SIP messages and response code. SIP messages and responses are
used for setup , in session changes, info and for tearing down a session. A response code is a
response which is sent in response to a SIP message, and we can also get a SIP
message in acknowledgement of response code.We will look into some quite
frequent SIP messages in this post and response codes in the next post.
SIP Messages:
INVITE: Invite is
very first message to set up a connection. It is also used to modify a session
as re-invite (which we will discuss in later posts). User Agent sending an
Invite is known as User Agent Client.
ACK: ACK is sent
in response to a 200 OK message. ACK is used only with Invite or a Re-Invite
message.
BYE: Bye is used
to indicate a call termination or end of a session. The party who is ending the
call will send the Bye message and other party will send 200 OK in response to
a bye message.
Cancel: It is
used to cancel a pending request. Bye is used when a session has been
established, but cancel is used when a client is waiting for a 200 OK message and
session has not been established yet. It is sent by a UAC to UAS informing it
to stop processing the request.
Register: Register message is used by a UAC to register
with the Registrar server. It is used to bind the URI of the SIP client to the
SIP server. IP address of the client is stored in the location server.
Options: Options
message is used to find out the media capabilities of the other user. In can be
used with in a call session or without a call session. UAS sends its
capabilities in a 200 OK message.
INFO: Info is
used for midsession media capabilities i.e. sending the DTMF tones in a call in
progress. Most IVR systems that need an input through keypad use Info to get
the capabilities. In order to hide the information we need TLS for securing the
signalling.
PRACK: Prack it
is also known as provisional acknowledgement. It is a complex method which
becomes hard to understand most of the times. It is used only in response to
1XX messages (will be discussed later in this post) except 100 Trying. It is
used when an invite is sent without SDP and instead of ‘200 OK’ ‘183 Session in Progress’ contains SDP
message. Prack is sent with SDP answer.
SUBSCRIBE: It is used to request a notification of an
event. For an example an IM user sends a Request message to the server to watch
the presence status of another user.
NOTIFY: It is
sent to the client to notify about an event, for an example change in state of subscribed
UA, or if a new message has been received from another user. When other user
changes its IM status from Available to Busy server sends a Notify message to
the subscribed user.
PUBLISH: Publish
message is used by a client (presentity) to send it’s current status to the SIP
server, which is used to notify the user (watcher) who is watching the status of
other client.
MESSAGE: Message method
is used to transfer the messages between the SIP clients. Messages are normally
sent in plain text.
REFER: Refer
message is used to transfer an existing session, inviting other parties to conference
or refer external resources.
UPDATE: It is
used by a client to update session information before final response to the
initial Invite message. It can be sent by a called or the called party. It can
be used to update parameters like codec etc.
SERVICE: The SERVICE method can carry a
Simple Object Access Protocol (SOAP) message as it's payload. SOAP is a
lightweight protocol for exchange of information in a decentralized,
distributed environment. SOAP defines a framework for encoding request and
response messages in XML.
BENOTIFY: It is also know as best effort Notify and is used
when a 200 OK response is not required for a Notify message. It helps to reduce
SIP signalling traffic.
PS: If you like this post please like my Facebook page Cisco Voice Virtual Lab which will help you to know about my next post on Facebook.
Sir it would be great if u add some examples for better understnding
ReplyDeleteHi Srikant,
ReplyDeleteThanks for your input. I would be adding more details with examples in the upcoming posts.
plz if you can add more examples with photos to understand the different between these sip messages
ReplyDeletethx so much
regards
samy