Chapter 5. SDP
8. Early Media Session 설립하기
Early Media Session을 같은 다이얼로그 내에서 처리하기 위해 SIP 메세지의 Content-Disposition 헤더에 “early-session”이라는 새로운 disposition type을 정의합니다. 또한, Require와 Supported 헤더에 “early-session”이라는 옵션 테그를 정의하여 early-session disposition type을 사용할 수 있음을 표시합니다.
Early Media Session과 Regular Media Session이 전환될 때 코덱이 변경되지 않도록 같은 코덱을 사용하도록 합니다. RFC 3959의 예제를 통해 SDP 메세지를 살펴보겠습니다.
일반적인 SIP 통화와 마찬가지로 앨리스는 INVITE with Offer로 SDP Early Offer가 송신합니다. 밥은 183 Session Progress 응답에서 Answer와 동시에 Early Media Session에 대한 Offer를 동시에 협상합니다. Early Media 세션은 Regular Media 세션 협상 전에 이루어져야 하므로 앨리스는 200 OK 전에 응답하기 위한 방법이 없으므로 새로운 매쏘드인 PRACK을 이용합니다. PRACK에 대해서는 다음장에서 설명할 것이므로 여기에서는 SDP 메세지만을 살펴봅니다.
- Offer (Regular Media Session에 대한 Offer)
엘리스는 밥에게 “Content-Disposition: session” 헤더를 INVITE에 추가해서 전송합니다. 이 헤더의 의미는 INVITE에 포함된 Offer는 regular session에 대한 것임을 표시합니다.
...
Content-Type: application/sdp
Content-Disposition: session
v=0
o=alice 2890844730 2890844731 IN IP4 host.example.com
s=
c=IN IP4 192.0.2.1
t=0 0
m=audio 20000 RTP/AVP 0 - Early Offer and Answer (Early Media Session에 대한 Offer와 Regular Media Session에 대한 Answer)
밥은 183 Session Progress를 엘리스에게 전송하면서 다중 메세지가 포함되었음을 의미하는 Content-Type:multipart/mixed 라는 정보를 함께 보냅니다. Content-Disposition 헤더는 session과 early-session 두 가지가 있습니다. 첫번째 Content-Disposition:session은 regular session에 대한 것으로 기존의 Offer에 대한 Answer입니다. 두번째 Content-Disposition:early-session은 Early Session를 위한 Offer입니다.
...
Content-Type: multipart/mixed; boundary="boundary1"
Content-Length: 401
--boundary1
Content-Type: application/sdp
Content-Disposition: session
v=0
o=Bob 2890844725 2890844725 IN IP4 host.example.org
s=
c=IN IP4 192.0.2.2
t=0 0
m=audio 30000 RTP/AVP 0
--boundary1
Content-Type: application/sdp
Content-Disposition: early-session
v=0
o=Bob 2890844714 2890844714 IN IP4 host.example.org
s=
c=IN IP4 192.0.2.2
t=0 0
m=audio 30002 RTP/AVP 0
--boundary1-- - Early Answer (Early Media Session에 대한 Answer)
엘리스는 Early Offer에 대한 Answer를 수행합니다.
...
Content-Type: application/sdp
Content-Disposition: early-session
v=0
o=alice 2890844717 2890844717 IN IP4 host.example.com
s=
c=IN IP4 192.0.2.1
t=0 0
m=audio 20002 RTP/AVP 0
9. Early Media를 위한 또다른 방법
또다른 방법으로는 Early Media Session을 만들지 않고 UPDATE 메쏘드 를 이용하여 UAC와 UAS간의 원 세션에 “Early Media” 라벨을 붙여서 새로운 스트림을 추가하는 것입니다. 즉, UAS와 함께 구성되지 않은 별도의 애플리케이션 서버와 같은 방식으로 새로운 Early Media Session을 설립하는 것입니다.
UPDATE 메쏘드도 다음 장에서 자세히 설명하겠습니다.
다음 장에서는 호 절차와 SDP 협상과 관련된 PRACK, UPDATE, REFFER 에 대해 설명하겠습니다.
"다시쓰는 SIP의 이해" 연재의 다른 글
2015/07/09 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 22편 Chapter 8. RTP의 이해
2015/07/09 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 21편 Chapter 7. 가끔 보는 SIP Method
2015/07/08 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 20편 Chapter 7. 가끔 보는 SIP Method
2015/05/20 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 19편 Chapter 7. 가끔 보는 SIP Method
2015/05/18 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 18편 Chapter 7. 가끔 보는 SIP Method
2015/05/07 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 17편 Chapter 6. SIP Method
2015/02/26 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 16편 Chapter 6. SIP Method
2015/02/23 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 15편 Chapter 6. SIP Method
2015/02/11 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 14편 Chapter 6. SIP Method
2015/01/30 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 13편 Chaper 5.SDP
2015/01/29 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 12편 Chapter 5. SDP
2015/01/05 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 11편 Chapter 5. SDP
2014/12/09 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 10편 Chapter 4. SIP Response
2014/12/04 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 9편 Chapter 3. SIP Method on RFC 3261
2014/12/03 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 8편 Chapter 3. SIP Method on RFC 3261
2014/12/02 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 7편 Chapter 3. SIP Method on RFC 3261
2014/11/26 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 6편 Chapter 2. SIP Overview
2014/11/21 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 5편 Chapter 2. SIP Overview
2014/11/19 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 4편 Chapter 1. VoIP의 이해 (3)
2014/11/11 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 3편 Chapter 1. VoIP의 이해 (2)
2014/11/05 - [SIP의 이해] - [연재] 다시쓰는 SIP의 이해 - 2편 Chapter 1. VoIP의 이해 (1)
라인하트 유씨누스 (CCIEV #18487) --------------------------------------
ucwana@gmail.com (라인하트의 구글 이메일)
http://twitter.com/nexpertnet (넥스퍼트 블로그의 트위터, 최신 업데이트 정보 및 공지 사항)
http://groups.google.com/group/cciev (시스코 UC를 공부하는 사람들이 모인 구글 구룹스)
http://groups.google.com/group/ucforum (UC를 공부하는 사람들이 모인 구글 구룹스)
세상을 이롭게 하는 기술을 지향합니다. ______________________________________________