SIP/SIPS URI(Uniform Resource Indicators)는 communications resource를 나타내는 식별자로서 통신 session을 시작하고 유지하는 데 필요한 정보를 가지고 있다. SIPS URI는 UAC(SIP User Agent Client)간에 통신을 할 때 안전한(secure) 방식을 사용함을 나타낸다. SIPS URI를 사용하여 통신하는 방식에 대해서는 RFC 3263을 참조하기 바란다
SIP URI의 일반적인 형태는 다음과 같다. SIPS URI의 경우에는 URI scheme만 “sip” 대신에 “sips”를 사용한다.
[code]
sip:user:password@host:port;uri-parameters?headers
[/code]
user:password : 특정 host 내에서 사용자를 구분하기 위한 식별자로서 host 내에서 사용자의 개념이 필요하지 않을 경우 “user:password@” 부분을 생략할 수 있다. password를 text 형태로 전송하는 것은 보안상 문제가 될 수 있기 때문에 사용하는 것을 권장하지 않는다.
host:port : host로는 FQDN(Fully-Qualified Domain Name)이나 IPv4, IPv6 주소가 올 수 있다.
uri-parameters: URI를 이용하여 request를 생성할 때 영향을 주는 parameter들로서 uri-parameter는 “parameter-name = parameter-value”의 형태를 가지며 parameter들간에는 “;”으로 구분된다. 정의가 되어 있는 parameter-name으로는 multicast 주소를 나타내는 “maddr”, transport 방식을 나타내는 “transport”, time-to-live 값을 나타내는 “ttl”, “user:password”가 telephone-subscriber인지를 나타내는 “user”, loose-routing을 나타내는 “lr” 등이 있다.
headers: URI를 이용하여 request를 생성할 때 영향을 주는 header들로서 header는 “header-name = header-value”의 형태를 가지며 header들 간에는 “&”로 구분한다. header-name이 “body”인 경우에는 header-value 값이 message-body를 나타낸다.
SIP URI는 SIP URI 내의 특정 위치에 올 수 없는 character가 올 경우 RFC 2396의 방식대로 character를 escaping시킨다. 즉 해당되는 character를 %hexhex 형태로 변경한다. 예를 들어 SIP URI의 user 부분에 “bob@eluon.com”의 값이 온다면 user 부분에는 ‘@’가 허용되지 않으므로 “bob%40eluon.com”으로 escaping되어야 한다.
SIP URI를 예로 들면 다음과 같다.
[code]
sip:alice@eluon.com
sip:alice:secretword@eluon.com;transport=tcp
sip:+1-212-555-1212:1234@gw.eluon.com;user=phone
sip:eluon.com;method=REGISTER?to=alice%40eluon.com
[/code]
SIP URI의 일반적인 형태는 다음과 같다. SIPS URI의 경우에는 URI scheme만 “sip” 대신에 “sips”를 사용한다.
[code]
sip:user:password@host:port;uri-parameters?headers
[/code]
user:password : 특정 host 내에서 사용자를 구분하기 위한 식별자로서 host 내에서 사용자의 개념이 필요하지 않을 경우 “user:password@” 부분을 생략할 수 있다. password를 text 형태로 전송하는 것은 보안상 문제가 될 수 있기 때문에 사용하는 것을 권장하지 않는다.
host:port : host로는 FQDN(Fully-Qualified Domain Name)이나 IPv4, IPv6 주소가 올 수 있다.
uri-parameters: URI를 이용하여 request를 생성할 때 영향을 주는 parameter들로서 uri-parameter는 “parameter-name = parameter-value”의 형태를 가지며 parameter들간에는 “;”으로 구분된다. 정의가 되어 있는 parameter-name으로는 multicast 주소를 나타내는 “maddr”, transport 방식을 나타내는 “transport”, time-to-live 값을 나타내는 “ttl”, “user:password”가 telephone-subscriber인지를 나타내는 “user”, loose-routing을 나타내는 “lr” 등이 있다.
headers: URI를 이용하여 request를 생성할 때 영향을 주는 header들로서 header는 “header-name = header-value”의 형태를 가지며 header들 간에는 “&”로 구분한다. header-name이 “body”인 경우에는 header-value 값이 message-body를 나타낸다.
SIP URI는 SIP URI 내의 특정 위치에 올 수 없는 character가 올 경우 RFC 2396의 방식대로 character를 escaping시킨다. 즉 해당되는 character를 %hexhex 형태로 변경한다. 예를 들어 SIP URI의 user 부분에 “bob@eluon.com”의 값이 온다면 user 부분에는 ‘@’가 허용되지 않으므로 “bob%40eluon.com”으로 escaping되어야 한다.
SIP URI를 예로 들면 다음과 같다.
[code]
sip:alice@eluon.com
sip:alice:secretword@eluon.com;transport=tcp
sip:+1-212-555-1212:1234@gw.eluon.com;user=phone
sip:eluon.com;method=REGISTER?to=alice%40eluon.com
[/code]
'Protocol > SIP' 카테고리의 다른 글
| local policy (0) | 2013.09.25 |
|---|---|
| sip header example (sip 헤더 예제) (0) | 2013.09.25 |
| Request Forwarding (0) | 2013.09.25 |
| Stateful Proxy (0) | 2013.09.25 |
| transaction 종류 및 정의 (0) | 2013.09.25 |