Option method
- 이 옵션을 통해서 다른 UA들이나 프록시에게 쿼리를 보내어 처리할 수 있는 능력(supported methods, content type, extensions, codec등)을 확인 할 수 있음.
- ex) INVITE를 보낼때 Require헤더에 지원 여보를 알고 싶은 값을 넣고 UAS에서는 Supoorted 헤더 필드에 지원 가능한 값을 넣어서 보냄
- Request-URI를 통하여 확인 가능 - 만일 proxy일 경우는 REGISTER 요청 처럼 보냄
서버가 Max-Forwards 헤더 필드의 값이 0인 Request를 받았을 경우
- Request-URI에 전달(?) (MAY)
- 일반적인 UA의 행동 : transaction layer에서 timeout 에러 발생, 타켓이 이용 가능하지 않는다고 생각
- Request-URI에 전달(?) (MAY)
- capabilities를 확인 하기 위하여 생성된 dialog 내에서 사용 (MAY)
11.1 Construction of OPTIONS Request#
OPTIONS request의 생성 방법은 일반적으로 8.1.1에서와 같음
Contact 헤더 필드가 올 수 있음(MAY)
Accept 헤더 필드는 꼭 들어가야 함(SHOULD)
- UAC가 response 받기 위한 메시지 바디의 타입을 나타냄
- UA들의 media capabilities를 나타내기 위해 일반적으로 사용
Example OPTIONS request:
OPTIONS sip:carol@chicago.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKhjhs8ass877
Max-Forwards: 70
To: <sip:carol@chicago.com>
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 63104 OPTIONS
Contact: <sip:alice@pc33.atlanta.com>
Accept: application/sdp
Content-Length: 0
OPTIONS sip:carol@chicago.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKhjhs8ass877
Max-Forwards: 70
To: <sip:carol@chicago.com>
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 63104 OPTIONS
Contact: <sip:alice@pc33.atlanta.com>
Accept: application/sdp
Content-Length: 0
11.2 Processing of OPTIONS Request#
OPTIONS에 대한 response의 생성은 일반적인 방법인 8.2.6과 같음
INVITE에서와 같은 response 코드가 선택되어 짐
- 200 (OK) : call을 받을 준비가 되었을 경우
- 486 (Busy Here) : UAS가 busy 등일 경우, invite 전 UAS의 상택를 확인 할 수 있음
Dialog에서 200 (OK) response를 보낸후 받은 OPTION request는 dialog 밖에서 보낸 것과 동일하며 dialog에 아무런 영향을 주지 못함
프록시의 처리에 때라서 OPTIONS, INVITE request를 처리하는데 OPTIONS의 사용에 한계가 있음
포킹 되었을 경우 : INVITE는 multiple 200 (OK) response 결과를 가질 수 있는 반면 OPTIONS는 하나의 200 (OK)만 의미를 가짐, 이에 대한 자세한 처리는 Section 16.7에서 다룸
Proxy server에서 생성한 response는 서버의 capablilities를 리스팅하여 200 (OK)를 보냄
- response는 메시지 바디를 가지지 않음
- Allow, Accept, Accept-Encoding, Accept-Language, Supported에 있어야 함(SHOULD)
- Allow 헤더 필드는 모호할 경우는 생략하여야 함(SHOULD)
- Contact 헤더 필드는 나타 날 수 있음(MAY) - 3xx response의 문법과 동일
message body는 OPTIONS request의 Accept 헤더 필드의 타입에 따라서 보내어 질 수 있음(MAY)
- Accept 헤더 필드가 없을 경우는 application/sdp가 default임
- 만약 media capabilities를 나타내는 타입이 있다면 UAS는 response body를 해당 용도의 정보를 포함하여야 함(SHOULD)
Example OPTIONS response generated by a UAS (corresponding to the request in Section 11.1):
SIP/2.0 200 OK
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKhjhs8ass877
;received=192.0.2.4
To: <sip:carol@chicago.com>;tag=93810874
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 63104 OPTIONS
Contact: <sip:carol@chicago.com>
Contact: <mailto:carol@chicago.com>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE
Accept: application/sdp
Accept-Encoding: gzip
Accept-Language: en
Supported: foo
Content-Type: application/sdp
Content-Length: 274
(SDP not shown)
SIP/2.0 200 OK
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKhjhs8ass877
;received=192.0.2.4
To: <sip:carol@chicago.com>;tag=93810874
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710
CSeq: 63104 OPTIONS
Contact: <sip:carol@chicago.com>
Contact: <mailto:carol@chicago.com>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE
Accept: application/sdp
Accept-Encoding: gzip
Accept-Language: en
Supported: foo
Content-Type: application/sdp
Content-Length: 274
(SDP not shown)
'Protocol > SIP' 카테고리의 다른 글
| 13. Initiating a Session (0) | 2013.09.25 |
|---|---|
| 12. Dialogs (0) | 2013.09.25 |
| 10. Registrations (0) | 2013.09.25 |
| 09. Canceling a Request (0) | 2013.09.25 |
| 08. General User Agent Behavior (0) | 2013.09.25 |