Total Pageviews

Tuesday, January 3, 2012

SIP Message Structure

SIP Message Structure
All SIP messages are either requests from a server or client or responses to a request. The messages are formatted according to RFC 822, "Standard for the format of ARPA internet text messages." For all messages, the general format is:
  • A start line
  • One or more header fields
  • An empty line
  • A message body (optional)
Each line must end with a carriage return-line feed (CRLF).

Requests

SIP uses six types (methods) of requests:
  • INVITE-Indicates that a user or service is being invited to participate in a call session
  • ACK-Confirms that the client has received a final response to an INVITE request
  • BYE-Terminates a call and can be sent by the calling or called party
  • CANCEL-Cancels any pending searches but does not terminate a call that has already been accepted
  • OPTIONS-Queries the capabilities of servers
  • REGISTER-Registers the address listed in the To header field with a SIP server

Responses

The following types of responses are used by SIP and generated by the Cisco SIP proxy server:
  • SIP 1xx-Informational responses
  • SIP 2xx-Successful responses
  • SIP 3xx-Redirection responses
  • SIP 4xx-Client failure responses
  • SIP 5xx-Server failure responses
  • SIP 6xx-Global failure responses

Registration Process

A registration occurs when a client needs to inform a proxy or redirect server of its location. During this process, the client sends a REGISTER request to the proxy or redirect server and includes the address (or addresses) at which it can be reached.

Invitation Process

An invitation occurs when one SIP endpoint (user A) "invites" another SIP endpoint (user B) to join in a call. During this process, user A sends an INVITE message requesting that user B join a particular conference or establish a two-party conversation. If user B wants to join the call, it sends an affirmative response (SIP 2xx). Otherwise, it sends a failure response (SIP 4xx). Upon receiving the response, user A acknowledges the response with an ACK message. If user A no longer wants to establish this conference, it sends a BYE message instead of an ACK message.