Documente Academic
Documente Profesional
Documente Cultură
Overview
SIP is an application layer protocol that is used for establishing, modifying and terminating multimedia sessions in an Internet Protocol (IP) network. SIP was created with the following design goals in mind: transport protocol neutrality able to run over reliable (TCP, SCTP) and unreliable (UDP) protocols; request routing direct or proxy-routed (control); separation of signaling and media description can add new applications or media; extensibility; personal mobility.
SIP Architecture
Elements in SIP can be classified as User Agents (UAs) and Intermediaries (servers). A SIP UA or terminal is the end point of dialogs: it sends and receives SIP requests and responses, it is the end point of multimedia streams The UA consists of two parts: User Agent Client (UAC) the caller application that initiates requests; User Agent Server (UAS) accepts, redirects, rejects requests and sends responses to incoming requests on behalf of the user.
SIP intermediaries are logical entities through which SIP messages pass on their way to their final destination. These Intermediaries are used to route and redirect requests.
Proxy server receives and forwards SIP requests. It can interpret or rewrite certain parts of SIP messages that do not disturb the state of a request or dialog at the end points, including the body.
to store explicit binding between a users address of record (SIP address) and the address of the host where the user is currently residing or wishes to receive requests.
Presentation / Author / Date
Application Server an AS is an entity in the network that provides endusers with a service. Typical examples of such servers are presence and conferencing servers.
SIP Entities
SIP TRAPEZOID
Method the method indicates the type of request. Six are defined in the
base SIP specification [RFC3261]: the INVITE, CANCEL, ACK,BYE,REGISTER,OPTIONS.Other methods have been created as an extension to [RFC3261].
Status Code the status code is a three-digit code that identifies the
nature of the response. It indicates the outcome of the request.
1xx provisional/informational responses. They indicate that the request was received and
the recipient is continuing to process the request.
2xx success responses. The request was successfully received, understood and accepted. 3xx re-direction responses. Further action needs to be taken by the requester in order to
complete the request.
4xx client error responses. The request contains a syntax error. It can also indicate that
the server cannot fulfill the request. server.
5xx server error responses. The server failed to fulfill a valid request. It is the fault of the 6xx global failure responses. The request cannot be fulfilled at any server. The server
responding with this response class needs to have definitive information about the user.
Header Fields
Header fields contain information related to the request: for example, the initiator of the request, the recipient of the request and call identifier. Examples: To header To: SIP-URI(;parameters) From header From: SIP-URI(;parameters) Call-ID header Call-ID: unique-id CSeq header CSeq: digit method Via header Via: SIP/2.0/[transport-protocol] sent-by(;parameters) Max-Forwards header Max-Forwards: digit Contact header Contact: SIP-URI
Message Body
The message body (payload) can carry any text-based information, while the request method and the response status code determine how the body should be interpreted. When describing a session the SIP message body is typically a Session Description Protocol (SDP) message. Example of SDP:
v=0 o=User.Alpha 2890844526 2890844526 IN IP4 here.com t=0 0 c=IN IP4 100.101.102.103 m=audio 49170 RTP/AVP 0 a=rtpmap:0 PCMU/8000
Example: EXTENDING SIP to Make it Reliable Transmission of Hop-by-Hop Provisional Responses (Unreliable)
Example: EXTENDING SIP to Make it Reliable (continued) Transmission of E2E Provisional Responses (Unreliable)
Example: EXTENDING SIP to Make it Reliable (continued) Transmission of Provisional Responses (100rel Reliable)
Example: EXTENDING SIP to Make it Reliable (continued) Preconditions (carried in UPDATE and SDP)
SDP Payload:
m=audio 20000 RTP/AVP 0 a=curr:qos local sendrecv a=curr:qos remote none a=des:qos mandatory local sendrecv a=des:qos mandatory remote sendrecv