SIP Session Initiation Protocol RFC 3261 part 2

  • Slides: 72
Download presentation
SIP : Session Initiation Protocol RFC 3261 part 2 Soongsil Univ. Data & Communication

SIP : Session Initiation Protocol RFC 3261 part 2 Soongsil Univ. Data & Communication Network Lab. Woo-Pyoung Yi lwp 041@dcn. ssu. ac. kr DCN

Contents § § § Sec. 16 Sec. 17 Sec. 18 Sec. 19 Sec. 20

Contents § § § Sec. 16 Sec. 17 Sec. 18 Sec. 19 Sec. 20 Proxy Behavior Transactions Transport Common Message Components Header Fields lwp 041@dcn. ssu. ac. kr DCN 2

Proxy Behavior § Each proxy will make routing decisions, modifying the request before forwarding

Proxy Behavior § Each proxy will make routing decisions, modifying the request before forwarding it to next element. § Responses will route through the same set of proxies traversed by the request in the reverse order. § Stateless VS Stateful Mode Stateful Stateless Incoming/outgoing 메시지에 Request를 단순히 포워딩한다. 대한 정보 기억(transaction) ACK나 CANCEL request와 Provisional응답 생성불가 provisional 응답생성 응답은 upstream으로 포워딩(caller에게) ACK는 downstream으로 포워딩(callee에게) lwp 041@dcn. ssu. ac. kr DCN 3

Proxy Behavior § Stateful Proxy § Its behavior is modeled here in terms of

Proxy Behavior § Stateful Proxy § Its behavior is modeled here in terms of the server and client transaction and proxy core. § Proxy core determines where to route the request, choosing one or more next-hop locations § A stateful proxy creates a new server transaction for each new request received lwp 041@dcn. ssu. ac. kr DCN 4

Proxy Behavior § Stateful Proxy 1. Validate the request 2. Preprocess routing information 3.

Proxy Behavior § Stateful Proxy 1. Validate the request 2. Preprocess routing information 3. Determine target for the request 4. Forward the request to each target 5. Process all responses lwp 041@dcn. ssu. ac. kr DCN 5

Proxy Behavior § 1. Validate the request § Reasonable Syntax § URI scheme §

Proxy Behavior § 1. Validate the request § Reasonable Syntax § URI scheme § Max-Forwards § (Optional) Loop Detection § Proxy-Require § Proxy-Authorization lwp 041@dcn. ssu. ac. kr DCN 6

Proxy Behavior § 2. Preprocess routing information § Request-URI 검사 § Route header field의

Proxy Behavior § 2. Preprocess routing information § Request-URI 검사 § Route header field의 값을 Request-URI에 replace (strict router) § Route header field에서 삭제 lwp 041@dcn. ssu. ac. kr DCN 7

Proxy Behavior § 3. Determining Request Targets § Contents of the request § Location

Proxy Behavior § 3. Determining Request Targets § Contents of the request § Location service § Target set lwp 041@dcn. ssu. ac. kr DCN 8

Proxy Behavior § 4. Request Forwarding § § § 1. Make a copy of

Proxy Behavior § 4. Request Forwarding § § § 1. Make a copy of the received request 2. Update the Request-URI 3. Update the Max-Forwards header field 4. Optionally add a Record-route header field value 5. Optionally additional header fields 6. Postprocess routing information 7. Determine the next-hop address, port, and transport 8. Add a Via header field value 9. Add a Content-Length header field if necessary 10. Forward the new request 11. Set timer C lwp 041@dcn. ssu. ac. kr DCN 9

Proxy Behavior § 5. Process all responses § Response matching 시도 § Matching되지 않으면

Proxy Behavior § 5. Process all responses § Response matching 시도 § Matching되지 않으면 : stateless proxy 처럼 동작 § Matching 되는 경우 : client transaction에서 proxy layer 로 전달 § Proxy layer에서 하는 일 § § § 1. Find the appropriate response context 2. Update timer C for provisional responses 3. Remove the topmost Via 4. Add the response to the response context 5. Check to see if this response should be forwarded immediately 6. When necessary, choose the best final response from the response context 7. Aggregate authorization header field values if necessary 8. Optionally rewrite Record-Route header field values 9. Forward the response 10. Generate any necessary CANCEL requests lwp 041@dcn. ssu. ac. kr 10 DCN

Proxy Behavior § CANCEL processing § Proxy가 CANCEL request을 받았을 때 matching되는 모 든

Proxy Behavior § CANCEL processing § Proxy가 CANCEL request을 받았을 때 matching되는 모 든 client transaction 삭제 § CANCEL 처리 동안 새로운 response context을 만들지 않음. § Proxy layer가 response context를 검사하고 일치되는 것이 있으면 200 OK 를 보낸다. § 없다면 stateless proxy처럼 동작한다. lwp 041@dcn. ssu. ac. kr DCN 11

Proxy Behavior § Stateless Proxy § § § 단순한 Message 전달자 Request와 response의 state을

Proxy Behavior § Stateless Proxy § § § 단순한 Message 전달자 Request와 response의 state을 가지고 있지 않음. Transport layer에서 보냄 100 provisional response 만들지 않음 Route § 하나의 target을 선택 § Retransmitted request는 반드시 동일한 목적지로 보냄 § CANCEL과 non-Routed ACK request는 반드시 INVITE와 동일하게 보냄 § Branch ID § § Random하게 만들지 않고 조합에 의하여 생성 항상 동일한 branch ID 유지 Via, To tag, From Tag, Call-ID, CSeq, Request-URI 이용 Record-Route나 Route field을 수정하였으면 재전송시에도 동일값을 추가 lwp 041@dcn. ssu. ac. kr DCN 12

Example § Scenario : U 1 -> P 2 -> U 2 § U

Example § Scenario : U 1 -> P 2 -> U 2 § U 1 -> P 1 INVITE sip: callee@domain. com SIP/2. 0 Contact: sip: caller@u 1. example. com § P 1 = outbound proxy, DNS을 이용하여 Record-Route 을 삽입 § P 1 -> P 2 INVITE sip: callee@domain. com SIP/2. 0 Contact: sip: caller@u 1. example. com Record-Route: <sip: p 1. example. com; lr> § P 2 -> U 2 (Location server 이용) INVITE sip: callee@u 2. domain. com SIP/2. 0 Contact: sip: caller@u 1. example. com Record-Route: <sip: p 2. domain. com; lr> Record-Route: <sip: p 1. example. com; lr> lwp 041@dcn. ssu. ac. kr 13 DCN

Example § Callee가 request을 받고 200 OK 송신 SIP/2. 0 200 OK Contact: sip:

Example § Callee가 request을 받고 200 OK 송신 SIP/2. 0 200 OK Contact: sip: callee@u 2. domain. com Record-Route: <sip: p 2. domain. com; lr> Record-Route: <sip: p 1. example. com; lr> § U 2 : dialog state 유지 Remote target : sip: caller@u 1. example. com Route : (<sip: p 2. domain. com; lr>, <sip: p 1. example. com; lr>) § U 1 response을 수신하고 dialog state 유지 Remote target : sip: callee@u 2. example. com Route : <sip: p 1. example. com; lr>, <sip: p 2. domain. com; lr> lwp 041@dcn. ssu. ac. kr DCN 14

Example § U 1이 BYE request 송신 BYE sip: callee@u 2. domain. com SIP/2.

Example § U 1이 BYE request 송신 BYE sip: callee@u 2. domain. com SIP/2. 0 Route: <sip: p 1. example. com; lr>, <sip: p 2. domain. com; lr> § P 1 -> P 2 BYE sip: callee@u 2. domain. com SIP/2. 0 Route: <sip: p 2. domain. com; lr> § P 2 -> U 2 BYE sip: callee@u 2. domain. com SIP/2. 0 lwp 041@dcn. ssu. ac. kr DCN 15

Example (strict router 가 있는 경우) § Scenario : U 1 -> P 2

Example (strict router 가 있는 경우) § Scenario : U 1 -> P 2 -> P 3 -> P 4 -> U 2 (P 3 : strict router) § U 2에 도착한 INVITE Contact: sip: caller@u 1. example. com Record-Route: <sip: p 4. domain. com; lr> Record-Route: <sip: p 3. middle. com> Record-Route: <sip: p 2. example. com; lr> Record-Route: <sip: p 1. example. com; lr> § BYE Message (U 2 ->P 4) BYE sip: caller@u 1. example. com SIP/2. 0 Route: <sip: p 4. domain. com; lr> Route: <sip: p 3. middle. com> Route: <sip: p 2. example. com; lr> Route: <sip: p 1. example. com; lr> § P 4 -> P 3 (P 3 strict router) BYE sip: p 3. middle. com SIP/2. 0 Route: <sip: p 2. example. com; lr> Route: <sip: p 1. example. com; lr> Route: <sip: caller@u 1. example. com> lwp 041@dcn. ssu. ac. kr 16 DCN

Example (strict router 가 있는 경우) § Scenario : U 1 -> P 2

Example (strict router 가 있는 경우) § Scenario : U 1 -> P 2 -> P 3 -> P 4 -> U 2 (P 3 : strict router) § P 3 -> P 2 BYE sip: p 2. example. com; lr SIP/2. 0 Route: <sip: p 1. example. com; lr> Route: <sip: caller@u 1. example. com> § P 2 -> P 1 BYE sip: caller@u 1. example. com SIP/2. 0 Route: <sip: p 1. example. com; lr> § P 1 ->U 1 BYE sip: caller@u 1. example. com SIP/2. 0 lwp 041@dcn. ssu. ac. kr DCN 17

Transactions § What is the “Transaction” ? § SIP Transaction consists of a single

Transactions § What is the “Transaction” ? § SIP Transaction consists of a single request and any responses to that requset lwp 041@dcn. ssu. ac. kr DCN 18

Transactions § INVITE Client Transaction § 4 State § Calling state § Proceeding state

Transactions § INVITE Client Transaction § 4 State § Calling state § Proceeding state § Completed state § Terminated state § Timer A § Timer B § Timer D § Construction of ACK lwp 041@dcn. ssu. ac. kr DCN 19

Transactions § INVITE Client Transaction § Construction of the ACK § Add tag in

Transactions § INVITE Client Transaction § Construction of the ACK § Add tag in To header field § Change the method in Cseq § Contain Call-ID, From, Request-URI that are equal to the value of those header fields in the request lwp 041@dcn. ssu. ac. kr DCN 20

Transactions § Non-INVITE Client Transaction § INVITE VS Non-INVITE § 4 State § Trying

Transactions § Non-INVITE Client Transaction § INVITE VS Non-INVITE § 4 State § Trying state § Proceeding state § Completed state § Terminated state § Timer E § Timer F § Timer K § Matching Response to Client Transaction lwp 041@dcn. ssu. ac. kr DCN 21

Transactions § Non-INVITE Client Transaction § Matching Response to Client Transaction § Two Conditions

Transactions § Non-INVITE Client Transaction § Matching Response to Client Transaction § Two Conditions : 1)The response has the same value of the branch parameter in the top via header field 2)The method parameter in the CSeq header field matches the method of the request § Handing Transport Errors § Inform the TU and directly to the “Terminated” state lwp 041@dcn. ssu. ac. kr DCN 22

Transactions § INVITE Server Transaction § 4 State § Proceeding state § Completed state

Transactions § INVITE Server Transaction § 4 State § Proceeding state § Completed state § Confirmed state § Terminated state § Timer G § Timer H § Timer I lwp 041@dcn. ssu. ac. kr DCN 23

Transactions § Non-INVITE Server Transaction § 4 State § § Trying state Proceeding state

Transactions § Non-INVITE Server Transaction § 4 State § § Trying state Proceeding state Completed state Terminated state § Timer J lwp 041@dcn. ssu. ac. kr DCN 24

Transactions § INVITE and Non-INVITE Server Transactions § Matching Requests to Server Transactions 1.

Transactions § INVITE and Non-INVITE Server Transactions § Matching Requests to Server Transactions 1. Branch parameter is equal to the one in the top via header field of the request that created the transaction 2. The sent-by value in the top via of the request is equal to the one in the request that created the transaction 3. The method of the request matches the one that created transaction, except for ACK § Handling Transport Errors 1. Attempt to deliver the response to a backup 2. If those should all fail, the server transaction inform the TU and should transaction to the terminated state. lwp 041@dcn. ssu. ac. kr DCN 25

Transport § Client § Sending Requests § If a request is within 200 bytes

Transport § Client § Sending Requests § If a request is within 200 bytes of the path MTU, or if it is larger than 1300 bytes and the path MTU is unknown, the request MUST be sent using an RFC 2914 [43] congestion controlled transport protocol § This prevents fragmentation of messages over UDP and provides congestion control for larger messages § A client that sends a request to a multicast address MUST add the "maddr" parameter to its Via header field value containing the destination multicast address, and for IPv 4, SHOULD add the "ttl“ parameter with a value of 1 lwp 041@dcn. ssu. ac. kr DCN 26

Transport § Client § Sending Requests § Before a request is sent, the client

Transport § Client § Sending Requests § Before a request is sent, the client transport MUST insert a value of the "sent-by" field( an IP address or host name, and port) into the Via header field § The client transport MUST be prepared to receive the response on the same connection used to send the request § Under error conditions, the server may attempt to open a new connection to send the response. § The transport layer MUST also be prepared to receive an incoming connection on the source IP address from which the request was sent and port number in the "sent-by" field § Also MUST be prepared to receive incoming connections on any address and port lwp 041@dcn. ssu. ac. kr DCN 27

Transport § Client § Sending Requests § For multicast, the client transport MUST be

Transport § Client § Sending Requests § For multicast, the client transport MUST be prepared to receive responses on the same multicast group and port to which the request is sent lwp 041@dcn. ssu. ac. kr DCN 28

Transport § Client § Receiving Responses § Examine the top Via header field value.

Transport § Client § Receiving Responses § Examine the top Via header field value. (“sent-by”) § If any client transactions exist, use matching procedures (Sec. 17. 1. 3) § If there is a match, response MUST be passed to that transaction. § Otherwise, response MUST be passed to the core for further processing. lwp 041@dcn. ssu. ac. kr DCN 29

Transport § Server § Receiving Requests § A server SHOULD be prepared to receive

Transport § Server § Receiving Requests § A server SHOULD be prepared to receive resquests (listen for requests in the default SIP ports : 5060, 5061(TLS) § Listen for request for both TCP and UDP § When the server transport receives a request, MUST examine sent-by parameter the top Via header field value. § If host portion of sent-by parameter contains a domain name or IP address that differs from packet source address, the server MUST add a “received” parameter to Via header field. Source Address § MUST be sent to the source IP address from which the request came lwp 041@dcn. ssu. ac. kr DCN 30

Transport § Server § Receiving Requests § Attempt to match the request to a

Transport § Server § Receiving Requests § Attempt to match the request to a server transaction (Sec. 17. 2. 3. ) § If a matching server transaction is found, request is passed. § If it is not found, request is passed to the core which may decide to construct a new server transaction for that request. * Note : When a UAS core sends a 2 xx response to INVITE, server transaction is destroyed. So when the ACK arrived, there will be no matching server transaction. lwp 041@dcn. ssu. ac. kr DCN 31

Transport § Server § Sending Responses : Server transaction uses the value of the

Transport § Server § Sending Responses : Server transaction uses the value of the top Via header field in order to determine where to send a response. § If “sent-protocol” is TCP or SCTP or TLS over those, the response MUST be sent using the existing connection to the source of the original request, if that connection is still open. § If that connection is no longer open, the server SHOULD open a connection to the IP address in the "received" parameter lwp 041@dcn. ssu. ac. kr DCN 32

Transport § Server § Sending Responses § If the Via header field value contains

Transport § Server § Sending Responses § If the Via header field value contains a “maddr” parameter, the response MUST be forwarded to the address listed there, using the port indicated in "sent-by", or port 5060 if none is present § Otherwise for UDP, if top Via header field has a “received” parameter, response MUST be sent to the address in the “received”, using port # indicated in the “sent-by” or 5060 § If this fails, elicits an ICMP "port unreachable" response § Otherwise, if it is not receiver-tagged, the response MUST be sent to the address indicated by the "sent-by" value lwp 041@dcn. ssu. ac. kr DCN 33

Transport § Framing § Message-oriented transports (UDP) § Additional bytes in the transport packet

Transport § Framing § Message-oriented transports (UDP) § Additional bytes in the transport packet beyond the end of the body -> Discard § The transport packet ends before the end of the message body -> This is considered an error § The message is a response, it MUST be discarded § The message is a request, it SHOULD generate a 400(Bad request) response § If the message has no content-length field, the message body is assumed to end at the end of the transport packet lwp 041@dcn. ssu. ac. kr DCN 34

Transport § Framing § Steam-oriented transports (TCP) § Content-length indicates the size of the

Transport § Framing § Steam-oriented transports (TCP) § Content-length indicates the size of the body § The content-length MUST be used with stream oriented transports lwp 041@dcn. ssu. ac. kr DCN 35

Transport § Error Handling § Independent of whether the message was a request or

Transport § Error Handling § Independent of whether the message was a request or response § Unreliable transport § The behavior depends on the type of ICMP error § Host, network, port and protocol unreachable error or parameter problem -> inform the transport user § Source quench and TTL exceed ICMP errors SHOULD be ignored § Reliable transport § Transport layer SHOULD inform the transport user of a failure in sending lwp 041@dcn. ssu. ac. kr DCN 36

Common Message Components § SIP and SIPS Uniform Resource Indicators § A SIP or

Common Message Components § SIP and SIPS Uniform Resource Indicators § A SIP or SIPS URI identifies a communication resource § Contain sufficient information to initiate and maintain a communication session with the resource § SIPS URI specifies that resource be contacted securely § Secure communications are used to reach the user, where the specific security mechanism depends on the policy of the domain lwp 041@dcn. ssu. ac. kr DCN 37

Common Message Components § SIP and SIPS URI components § Allow the specification of

Common Message Components § SIP and SIPS URI components § Allow the specification of SIP request-header fields and the SIP message-body § Its general form is : § SIPS URI is “sips” instead of sip lwp 041@dcn. ssu. ac. kr DCN 38

Common Message Components § user: The identifier of a particular resource at the host

Common Message Components § user: The identifier of a particular resource at the host being addressed § The "userinfo" of a URI consists of this user field, the password field, and the @ sign following them § The userinfo part of a URI is optional § If the @ sign is present in a SIP or SIPS URI, the user field MUST NOT be empty. lwp 041@dcn. ssu. ac. kr DCN 39

Common Message Components § password: A password associated with the user § NOT RECOMMENDED

Common Message Components § password: A password associated with the user § NOT RECOMMENDED § The passing of authentication information in clear text (such as URIs) has proven to be a security risk § Host: The host providing the SIP resource § Contains either a fully-qualified domain name or numeric IPv 4 or IPv 6 address § Using the fully-qualified domain name form is RECOMMENDED whenever possible lwp 041@dcn. ssu. ac. kr DCN 40

Common Message Components § Port: The port number where the request is to be

Common Message Components § Port: The port number where the request is to be sent § URI parameters : Parameters affecting a request constructed from the URI. § URI parameters are added after the hostport component and are separated by semi-colons § parameter-name "=" parameter-value lwp 041@dcn. ssu. ac. kr DCN 41

Common Message Components § Extensible mechanism includes the transport, maddr, TTL, user, method and

Common Message Components § Extensible mechanism includes the transport, maddr, TTL, user, method and lr parameters § transport parameter: Determines the transport mechanism to be used for sending SIP messages § A SIPS URI, the transport parameter MUST indicate a reliable transport § maddr parameter: Indicates the server address to be contacted for this user § When an maddr parameter is present, the port and transport components of the URI apply to the address indicated in the maddr parameter value lwp 041@dcn. ssu. ac. kr DCN 42

Common Message Components § The maddr field has been used as a simple form

Common Message Components § The maddr field has been used as a simple form of loose source routing § Continuing to use the maddr parameter this way is strongly discouraged § ttl parameter: determines the time-to-live value of the UDP multicast packet § MUST only be used if maddr is a multicast address and the transport protocol is UDP lwp 041@dcn. ssu. ac. kr DCN 43

Common Message Components § lr parameter: The element responsible for this resource implements the

Common Message Components § lr parameter: The element responsible for this resource implements the routing mechanisms § This parameter will be used in the URIs proxies place into Record-Route header field values § It is used to achieve backwards compatibility with systems implementing the strict-routing mechanisms of RFC 2543 § Headers: Header fields to be included in a request constructed from the URI § Encoded in ampersand separated hname = hvalue pairs § "body" indicates that the associated hvalue is the messagebody of the SIP request lwp 041@dcn. ssu. ac. kr DCN 44

Common Message Components § URI Comparison § SIP and SIPS URIs are compared for

Common Message Components § URI Comparison § SIP and SIPS URIs are compared for equality according to the following rules : § A SIP and SIPS URI are never equivalent § Comparison of the userinfo of SIP and SIPS URIs is casesensitive § The ordering of parameters and header fields is not significant in comparing SIP and SIPS URIs § Characters other than those in the "reserved" set are equivalent to their ""%" HEX" encoding § An IP address that is the result of a DNS lookup of a host name does not match that host name § For two URIs to be equal, the user, password, host, and port components must match lwp 041@dcn. ssu. ac. kr DCN 45

Common Message Components § URI uri-parameter components are compared as follows: § Any uri-parameter

Common Message Components § URI uri-parameter components are compared as follows: § Any uri-parameter appearing in both URIs must match § A user, ttl, or method uri-parameter appearing in only one URI never matches, even if it contains the default value § URI that includes an maddr parameter will not match a URI that contains no maddr parameter § All other uri-parameters appearing in only one URI are ignored when comparing the URIs § URI header components are never ignored lwp 041@dcn. ssu. ac. kr DCN 46

Common Message Components § Examples § The URIs within each of the following sets

Common Message Components § Examples § The URIs within each of the following sets are equivalent lwp 041@dcn. ssu. ac. kr DCN 47

Common Message Components § Examples § The URIs within each of the following sets

Common Message Components § Examples § The URIs within each of the following sets are not equivalent lwp 041@dcn. ssu. ac. kr DCN 48

Common Message Components § Relating SIP URIs and tel URLs § When a tel

Common Message Components § Relating SIP URIs and tel URLs § When a tel URL is converted to a SIP or SIPS URI, the entire telephone-subscriber portion of the tel URL is placed into the userinfo part of the SIP or SIPS URI § For example, tel : +358 -555 -1234567 ; postd=pp 22 become not lwp 041@dcn. ssu. ac. kr DCN 49

Common Message Components § Relating SIP URIs and tel URLs § Equivalent "tel" URLs

Common Message Components § Relating SIP URIs and tel URLs § Equivalent "tel" URLs converted to SIP or SIPS URIs may not produce equivalent SIP or SIPS URIs § For example, are equivalent , while are not. lwp 041@dcn. ssu. ac. kr DCN 50

Common Message Components § Relating SIP URIs and tel URLs § To mitigate this

Common Message Components § Relating SIP URIs and tel URLs § To mitigate this problem: 1. Fold any case-insensitive portion of telephonesubscriber to lower case, 2. Order the telephone-subscriber parameters lexically by parameter name § For example, both become lwp 041@dcn. ssu. ac. kr DCN 51

Common Message Components § Relating SIP URIs and tel URLs § § For example

Common Message Components § Relating SIP URIs and tel URLs § § For example (cont`) And both become lwp 041@dcn. ssu. ac. kr DCN 52

Common Message Components § Tags § The "tag" parameter is used in the To

Common Message Components § Tags § The "tag" parameter is used in the To and From header fields of SIP messages § It serves as a general mechanism to identify a dialog, which is the combination of the Call-ID along with two tags § It MUST be globally unique and cryptographically random with at least 32 bits of randomness § The algorithm for generating a tag is implementationspecific lwp 041@dcn. ssu. ac. kr DCN 53

Header Fields § Information about header fields in relation to methods and proxy processing

Header Fields § Information about header fields in relation to methods and proxy processing is summarized in Tables § The Contact, From, and To header fields contain a URI § If the URI contains a comma, question mark or semicolon, the URI MUST be enclosed in angle brackets < and >. Any URI parameters are contained within these brackets § If the URI is not enclosed in angle brackets, any semicolon - delimited parameters are header-parameters, not URI parameters lwp 041@dcn. ssu. ac. kr DCN 54

Header Fields lwp 041@dcn. ssu. ac. kr DCN 55

Header Fields lwp 041@dcn. ssu. ac. kr DCN 55

Header Fields lwp 041@dcn. ssu. ac. kr DCN 56

Header Fields lwp 041@dcn. ssu. ac. kr DCN 56

Header Fields § Accept § The Accept header field follows the syntax defined in

Header Fields § Accept § The Accept header field follows the syntax defined in [H 14. 1]. The semantics are also identical, with the exception that if no Accept header field is present, the server SHOULD assume a default value of application/sdp § An empty Accept header field means that no formats are acceptable lwp 041@dcn. ssu. ac. kr DCN 57

Header Fields § Allow § Lists the set of methods supported by the UA

Header Fields § Allow § Lists the set of methods supported by the UA generating the message § The absence of an Allow header field MUST NOT be interpreted to mean that the UA sending the message supports no methods § Authentication-Info § The Authentication-Info header field provides for mutual authentication with HTTP Digest § A UAS MAY include this header field in a 2 xx response to a request lwp 041@dcn. ssu. ac. kr DCN 58

Header Fields § Authorization § The Authorization header field contains authentication credentials of a

Header Fields § Authorization § The Authorization header field contains authentication credentials of a UA § Call-ID § The Call-ID header field uniquely identifies a particular invitation or all registrations of a particular client § Call-IDs are case-sensitive and are simply compared byte-by -byte lwp 041@dcn. ssu. ac. kr DCN 59

Header Fields § Call-Info § The Call-Info header field provides additional information about the

Header Fields § Call-Info § The Call-Info header field provides additional information about the caller or callee depending on whether it is found in a request or response § Parameters – purpose, icon, card § Use of the Call-Info header field can pose a security risk § A proxy can insert this header field into requests lwp 041@dcn. ssu. ac. kr DCN 60

Header Fields § Contact § A Contact header field value provides a URI whose

Header Fields § Contact § A Contact header field value provides a URI whose meaning depends on the type of request or response it is in § A Contact header field value can contain a display name, a URI with URI parameters, and header parameters § Contact parameters - "q" and "expires” , only used when the Contact is present in a REGISTER request or response or in a 3 xx response § When the header field value contains a display name, the URI including all URI parameters is enclosed in "<" and ">" lwp 041@dcn. ssu. ac. kr DCN 61

Header Fields § Cseq § A CSeq header field in a request contains a

Header Fields § Cseq § A CSeq header field in a request contains a single decimal sequence number and the request method § Sequence number MUST be expressible as a 32 -bit unsigned integer and the method part of CSeq is case-sensitive § Serves to order transactions within a dialog § To differentiate between new requests and request retransmissions lwp 041@dcn. ssu. ac. kr DCN 62

Header Fields § From § The From header field indicates the initiator of the

Header Fields § From § The From header field indicates the initiator of the request § This may be different from the initiator of the dialog § The optional "display-name" is meant to be rendered by a human user interface § Even if the "display-name" is empty, the "name-addr" form MUST be used lwp 041@dcn. ssu. ac. kr DCN 63

Header Fields § Max-Forwards § The Max-Forwards header field must be used with any

Header Fields § Max-Forwards § The Max-Forwards header field must be used with any SIP method to limit the number of proxies or gateways that can forward the request to the next downstream server § The Max-Forwards value is an integer in the range 0 -255 indicating the remaining number of times this request message is allowed to be forwarded § This count is decremented by each server that forwards the request § The recommended initial value is 70 lwp 041@dcn. ssu. ac. kr DCN 64

Header Fields § Record-Route § The Record-Route header field is inserted by proxies in

Header Fields § Record-Route § The Record-Route header field is inserted by proxies in a request to force future requests in the dialog to be routed through the proxy lwp 041@dcn. ssu. ac. kr DCN 65

Header Fields § Route § The Route header field is used to force routing

Header Fields § Route § The Route header field is used to force routing for a request through the listed set of proxies. lwp 041@dcn. ssu. ac. kr DCN 66

Header Fields § To § The To header field specifies the logical recipient of

Header Fields § To § The To header field specifies the logical recipient of the request § The "tag" parameter serves as a general mechanism for dialog identification lwp 041@dcn. ssu. ac. kr DCN 67

Header Fields § Via § Indicates the path taken by the request so far

Header Fields § Via § Indicates the path taken by the request so far § The branch ID parameter in the Via header field values serves as a transaction identifier, and is used by proxies to detect loops § The value of the branch parameter MUST start with the magic cookie "z 9 h. G 4 b. K" lwp 041@dcn. ssu. ac. kr DCN 68

Header Fields § § § § § Content-Disposition Content-Encoding Content-Language Content-Length Content-Type Date Error-Info

Header Fields § § § § § Content-Disposition Content-Encoding Content-Language Content-Length Content-Type Date Error-Info Expires In-Reply-To Min-Expires lwp 041@dcn. ssu. ac. kr DCN 69

Header Fields § § § MIME-Version Organization Priority Proxy-Authenticate Proxy-Authorization Proxy-Require Reply-To Require Retry-After

Header Fields § § § MIME-Version Organization Priority Proxy-Authenticate Proxy-Authorization Proxy-Require Reply-To Require Retry-After Server Subject lwp 041@dcn. ssu. ac. kr DCN 70

Header Fields § § § Supported Timestamp Unsupported User-Agent Warning WWW-Authenticate lwp 041@dcn. ssu.

Header Fields § § § Supported Timestamp Unsupported User-Agent Warning WWW-Authenticate lwp 041@dcn. ssu. ac. kr DCN 71

§ THANK YOU FOR ATTENTION lwp 041@dcn. ssu. ac. kr DCN 72

§ THANK YOU FOR ATTENTION lwp 041@dcn. ssu. ac. kr DCN 72