본문 바로가기

Protocol/SIP

19. Common Message Components



 


 


19.1 SIP and SIPS Uniform Resource Indicators#


SIP, SIPS URI는 communications resource를 나타냄


SIPS URI는 resource와 scure하게 연결


 


19.1.1 SIP and SIPS URI Components#


sip:user:password@host:port;uri-parameters?headers

 


user



  • userinfo는 user field, password, @으로 구성
  • userinfo가 생략 될 수도 있음

 


password



  • user와 연관된 password
  • 사용 추천 되지 않음

 


host



  • SIP resource를 제공하는 호스트
  • FQDN, IPv4, IPv6가 올 수 있음

 


port


 


URI parameters



  • request에 영향을 주는 파라매터들
  • semi-colons으로 구별 됨
  • 파라매터 폼은 다음과 같음 : parameter-name "=" parameter-value
  • transport, maddr, ttl, user, method and lr parameters

 


Headers



  • URI에 ? 이후에 옴
  • & 로 구별
  • hname = hvalue 쌍으로 구성

 


19.1.2 Character Escaping Requirements#


SIP URI는 ""%" HEX HEX" 메카니즘을 사용하여 escaping 함


telephone-subscriber은 특별히 escaping에 고려되어야 함


host component는 escaping 하지 않음


 


19.1.3 Example SIP and SIPS URIs#


   sip:alice@atlanta.com
   sip:alice:secretword@atlanta.com;transport=tcp
   sips:alice@atlanta.com?subject=project%20x&priority=urgent    <- escaping 됨
   sip:+1-212-555-1212:1234@gateway.com;user=phone
   sips:1212@gateway.com
   sip:alice@192.0.2.4
   sip:atlanta.com;method=REGISTER?to=alice%40atlanta.com    <- escaping 됨
   sip:alice;day=tuesday@atlanta.com

 


19.1.4 URI Comparison#


SIP와 SIPS URI는 같지 않음


userinfo는 대소문자 구분함


header field의 순서는 의미 없음


"reserved" set과 ""%" HEX HEX" encoding은 동일함


user, password, host, and port 반드시 일치하여야 함


component가 생략된 것과 default 값을 가지는 것은 다름


uri-parameter components의 비교는 다음과 같음



  • URI에 나타난 uri-parameter 매치가 되어야 함
  • user, ttl, or method uri-parameter는 default 값을 가지더라도 한쪽만 나타나면 안됨
  • 한쪽만 maddr 파라매터를 가지면 안됨
  • 다른 uri-parameter들은 비교하지 않음

URI header components는 양쪽 URI에 다 나타나고 매칭 되어야 함


 


다음 URI들은 같음음



   sip:%61lice@atlanta.com;transport=TCP
   sip:alice@AtLanTa.CoM;Transport=tcp

   sip:carol@chicago.com
   sip:carol@chicago.com;newparam=5
   sip:carol@chicago.com;security=on

   sip:biloxi.com;transport=tcp;method=REGISTER?to=sip:bob%40biloxi.com
   sip:biloxi.com;method=REGISTER;transport=tcp?to=sip:bob%40biloxi.com

   sip:alice@atlanta.com?subject=project%20x&priority=urgent
   sip:alice@atlanta.com?priority=urgent&subject=project%20x


 


   sip:carol@chicago.com and sip:carol@chicago.com;security=on
   sip:carol@chicago.com and sip:carol@chicago.com;security=off


 


다음 URI들은 다름



   SIP:ALICE@AtLanTa.CoM;Transport=udp             (different usernames)
   sip:alice@AtLanTa.CoM;Transport=UDP

   sip:bob@biloxi.com                   (can resolve to different ports)
   sip:bob@biloxi.com:5060

   sip:bob@biloxi.com              (can resolve to different transports)
   sip:bob@biloxi.com;transport=udp


   sip:bob@biloxi.com     (can resolve to different port and transports)


   sip:bob@biloxi.com:6000;transport=tcp

   sip:carol@chicago.com                    (different header component)
   sip:carol@chicago.com?Subject=next%20meeting


   sip:bob@phone21.boxesbybob.com   (even though that's what


   sip:bob@192.0.2.4                 phone21.boxesbybob.com resolves to)


 


    sip:carol@chicago.com;security=on


    sip:carol@chicago.com;security=off


 


19.1.5 Forming Requests from a URI#


URI를 이용하여 request를 생성하는 방법


 


19.1.6 Relating SIP URIs and tel URLs#


tel URI를 SIP URI로 변환 하는 방법


tel URL의 telephone-subscriber portion을 SIP 또는 SIPS URI의 userinfo로 넣음



  • tel URL의 파라매터를 소문자로
  • tel URL의 파라매터 순서를 맞춰야 함

 


 


19.2 Option Tags#


새로운 SIP 옵션에 대한 unique indentifier임


 


 


19.3 Tags#


To와 Form header field에서 tag가 사용


Call-ID, To tag, From tag를 이용하여 dialog ID 생성


자신 자신이 session을 생성할 때 To tag와 From tag는 달라야 함


global unique한 tag 생성은 fault tolerant 시스템에 도움을 줌줌

'Protocol > SIP' 카테고리의 다른 글

DTMF Event  (0) 2013.09.25
22. Usage of HTTP Authentication  (0) 2013.09.25
18. Transport  (0) 2013.09.25
17. Transactions  (0) 2013.09.25
16. Proxy Behavior  (0) 2013.09.25