๊ด€๋ฆฌ ๋ฉ”๋‰ด

Tech Log ๐Ÿ› ๏ธ

SDP ๊ฐœ์š” & ๋ฉ”์„ธ์ง€ ๋ถ„์„ ๋ณธ๋ฌธ

์ง€๋Šฅํ˜• ๋„คํŠธ์›Œํฌ

SDP ๊ฐœ์š” & ๋ฉ”์„ธ์ง€ ๋ถ„์„

sehaan 2023. 5. 24. 21:23

SDP(Session Description Protocol) ๋ž€?

- ์„ธ์…˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ˜‘์ƒํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

  SIP๋Š” "์š”์ฒญ๊ณผ ์‘๋‹ต" ๋ชจ๋ธ์ด์ง€๋งŒ , SDP๋Š” "์ œ์•ˆ๊ณผ ์ˆ˜๋ฝ ๋ชจ๋ธ์ด๋‹ค.

  SDP๋Š” ๋ณดํ†ต ํ˜‘์ƒ ๋‚ด์šฉ์„ SIP ๋ฉ”์„ธ์ง€ ๋ฐ”๋””์— ํฌํ•จ๋˜์–ด ์ „๋‹ฌํ•œ๋‹ค. 

  SIP์˜ INVITE ์— SDP์˜ offer ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ , 200 OK์— SDP์˜ answer ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

 

SDP ๋ฉ”์„ธ์ง€ ๋ถ„์„

-  SIP ์™€ ๋‹ค๋ฅธ ๋ฉ”์„ธ์ง€ ํฌ๋งท์ด์ง€๋งŒ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜‘์ƒ์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

   (๋ณผ๋“œ์ฒด๋Š” ํ•„์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ)

  • v=0 (SDP์˜ ํ”„ํ† ์ฝœ ๋ฒ„์ „)
  • o=alice 2890844526 2890844526 IN IP4 atlanta.com (๋ฉ”์„ธ์ง€๋ฅผ ์ƒ์„ฑํ•œ ์ฃผ์ฒด)
  • s= (์„ธ์…˜ ์ด๋ฆ„)
  • c=IN IP4 10.1.3.33 (์˜ต์…˜)
  • t=0 0 (ํƒ€์ด๋ฐ)
  • m=audio 49172 RTP/AVP 0
  • a=rtpmap:0 PCMU/8000          

 

- m= , a= ์—์„œ RTP๊ฐ€ ์‚ฌ์šฉํ•  (์ง€์› ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ )์ฝ”๋ฑ , IP์ฃผ์†Œ , ํฌํŠธ ๋„˜๋ฒ„๋ฅผ ๋ช…๊ธฐ  

 

๊ธฐ๋ณธ SDP ํ˜‘์ƒ์˜ ์ดํ•ด

- ํ˜‘์ƒ์€ ์•จ๋ฆฌ์Šค - ๋ฐฅ - ์•จ๋ฆฌ์Šค - ๋ฐฅ ์ˆœ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

๋จผ์ €, ์•จ๋ฆฌ์Šค๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜‘์ƒ์„ ์ œ์•ˆํ•œ๋‹ค.

 

v=0
o=alice 2890844526 2890844526 IN IP4 host.anywhere.com
s=
c=IN IP4 host.anywhere.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 51372 RTP/AVP 31
a=rtpmap:31 H261/90000
m=video 53000 RTP/AVP 32
a=rtpmap:32 MPV/90000

 

๋ฉ”์„ธ์ง€๋ฅผ ๋ถ„์„ํ•ด๋ณด๋ฉด,

 

์ œ์•ˆ์˜ ์ฃผ์ฒด(o) ๋Š” ์•จ๋ฆฌ์Šค์ด๊ณ  ๋‹จ๋ง์˜ ์ฃผ์†Œ๋Š” "host.anywhere.com" ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  audio ํ•˜๋‚˜์™€ video ๋‘๊ฐœ์˜ ์ฝ”๋ฑ์„ ์ œ์•ˆํ•˜์˜€๋‹ค.

 

1. PCMU ์ฝ”๋ฑ (49170 ํฌํŠธ)

    - ๋ณ„๋„์˜ ์–ธ๊ธ‰์ด ์—†์œผ๋ฏ€๋กœ ์–‘๋ฐฉํ–ฅ ์ฑ„๋„

 

2. H.261 ์ฝ”๋ฑ (51372 ํฌํŠธ) 

    - ๋ณ„๋„์˜ ์–ธ๊ธ‰์ด ์—†์œผ๋ฏ€๋กœ ์–‘๋ฐฉํ–ฅ ์ฑ„๋„

 

3. MPEG ์ฝ”๋ฑ (53000 ํฌํŠธ)

    - ๋ณ„๋„์˜ ์–ธ๊ธ‰์ด ์—†์œผ๋ฏ€๋กœ ์–‘๋ฐฉํ–ฅ ์ฑ„๋„

 

์ด์ œ ๋ฐฅ์€ ํ˜‘์ƒ์„ ๋ฐ›์•„๋“ค์ธ๋‹ค.

 

v=0
o=bob 2890844730 2890844730 IN IP4 host.example.com
s=
c=IN IP4 host.example.com
t=0 0
m=audio 49920 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 0 RTP/AVP 31
m=video 53000 RTP/AVP 32
a=rtpmap:32 MPV/90000

 

์—ฌ๊ธฐ์„œ ์ฃผ๋ชฉํ•ด์•ผํ•  ์ ์€ ,

m= video 0 RTP/AVP ์— ๋Œ€ํ•œ a= ๊ฐ’์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

์ฆ‰ ๋ฏธ๋””์–ด ์†์„ฑ(a=)์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด , ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆผ์ด ๊ฐœ๋ฐฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

๋งŒ์•ฝ ๋ฐฅ์ด ํ˜‘์ƒ ๋ณ€๊ฒฝ์„ ์›ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž

 

v=0
o=bob 2890844730 2890844731 IN IP4 host.example.com
s=
c=IN IP4 host.example.com
t=0 0
m=audio 65422 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 0 RTP/AVP 31
m=video 53000 RTP/AVP 32
a=rtpmap:32 MPV/90000
m=audio 51434 RTP/AVP 110
a=rtpmap:110 telephone-events/8000
a=recvonly

 

ํ˜‘์ƒ ๋ณ€๊ฒฝ ๋‚ด์šฉ์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

 

1. PCMU ์ฝ”๋ฑ์˜ ํฌํŠธ๋ฅผ 49920 ์—์„œ 65422 ๋กœ ๋ณ€๊ฒฝํ•   ๊ฒƒ์„ ์š”์ฒญ

 

2. DTMF ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ˆ˜์‹ ์ „์šฉ ์ฑ„๋„ ๊ฐœ๋ฐฉ

 

๋ฐฅ์˜ ํ˜‘์ƒ ์š”์ฒญ์— ์•จ๋ฆฌ์Šค๋Š” ์ด๋ ‡๊ฒŒ ์‘๋‹ตํ•œ๋‹ค.

 

v=0
o=alice 2890844526 2890844527 IN IP4 host.anywhere.com
s=
c=IN IP4 host.anywhere.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 0 RTP/AVP 31
a=rtpmap:31 H261/90000
m=video 53000 RTP/AVP 32
a=rtpmap:32 MPV/90000
m=audio 53122 RTP/AVP 110
a=rtpmap:110 telephone-events/8000
a=sendonly

 

๋ฐฅ์ด ์ œ์•ˆํ•œ ๋‚ด์šฉ๋Œ€๋กœ ์Œ์„ฑ ์ฑ„๋„ 1๊ฐœ , ์˜์ƒ ์ฑ„๋„ 2๊ฐœ , ์ถ”๊ฐ€์ ์œผ๋กœ DTMF ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ฑ„๋„ ํ•œ๊ฐœ๋ฅผ ์ถ”๊ฐ€๋กœ ์˜คํ”ˆ.

 

์—ฌ๊ธฐ์„œ ์†ก์‹  ์ „์šฉ์œผ๋กœ ์˜คํ”ˆ ํ•œ ์ด์œ ๋Š” ๋ฐฅ์ด ์ˆ˜์‹  ์ „์šฉ์œผ๋กœ ์š”์ฒญ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ๊ณง ์•จ๋ฆฌ์Šค์—์„  ์†ก์‹  ์ „์šฉ์œผ๋กœ ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์ง€๊ธˆ๊นŒ์ง€๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฝ”๋ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์ด๊ณ , ๋˜ ๋‹ค๋ฅธ ๊ฒฝ์šฐ๋ฅผ ์‚ดํŽด๋ณด์ž


์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฝ”๋ฑ ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

 

- ์ „ํ™” ํ†ตํ™”๋Š” ํ•˜๋‚˜์˜ ์Œ์„ฑ ์ฝ”๋ฑ๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค.

  ๋”ฐ๋ผ์„œ offer ์— ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์ฝ”๋ฑ ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผํ•œ๋‹ค.

  

  ํ˜‘์ƒ์€ ์•จ๋ฆฌ์Šค - ๋ฐฅ - ์•จ๋ฆฌ์Šค - ๋ฐฅ ์ˆœ์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

์•จ๋ฆฌ์Šค๊ฐ€ ๋‹ค์ˆ˜์˜ ์ฝ”๋ฑ์„ ์ œ์•ˆํ•œ๋‹ค.

 

v=0
o=alice 2890844526 2890844526 IN IP4 host.anywhere.com
s=
c=IN IP4 host.anywhere.com
t=0 0
m=audio 62986 RTP/AVP 0 4 18
a=rtpmap:0 PCMU/8000
a=rtpmap:4 G723/8000
a=rtpmap:18 G729/8000
a=inactive

 

m ์†์„ฑ์— ์žˆ๋Š” 0 4 18 ์€ ์„ ํ˜ธ ์ˆœ์œ„์ด๋‹ค.

 

PCMU(G.711) , G.723 , G.729  ์„ธ ๊ฐœ์˜ ์ฝ”๋ฑ์„ ์ œ์•ˆํ–ˆ๋‹ค.

 

์ฝ”๋ฑ ํ˜‘์ƒ ์™„๋ฃŒ ์ „๊นŒ์ง€๋Š” ํ†ต์‹ ์ด ๋ถˆ๊ฐ€ํ•˜๋ฏ€๋กœ inactive

 

์ด์ œ ๋ฐฅ์ด ํ•˜๋‚˜์˜ ์ฝ”๋ฑ์„ ์„ ํƒํ•œ๋‹ค.

 

v=0
o=bob 2890844730 2890844731 IN IP4 host.example.com
s=
c=IN IP4 host.example.com
t=0 0
m=audio 54344 RTP/AVP 0 4
a=rtpmap:0 PCMU/8000 
a=rtpmap:4 G723/8000
a=inactive

 

์š”์•ฝ์„ ํ•ด๋ณด๋ฉด,

 

๋ฐฅ์€ PCMU(G.711) , G.723 ๋‘ ๊ฐœ์˜ ์ฝ”๋ฑ์ด ์ง€์›๊ฐ€๋Šฅํ•œ๋ฐ 0(PCMU), 4(G.723) ์ˆœ์œผ๋กœ ์„ ํ˜ธํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ inactive

 

๋‹ค์‹œ ์•จ๋ฆฌ์Šค๋Š” ๋ฐฅ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋ฑ ์ค‘์—์„œ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅธ๋‹ค.

 

v=0
o=bob 2890844730 2890844732 IN IP4 host.example.com
s=
c=IN IP4 host.example.com
t=0 0
m=audio 54344 RTP/AVP 4
a=rtpmap:4 G723/8000
a=sendrecv

 

๋‘๋ฒˆ์งธ ์šฐ์„  ์ˆœ์œ„์ธ G.723 ์„ ์„ ํƒํ•˜์˜€์ง€๋งŒ ๋ณดํ†ต ์ฒซ๋ฒˆ์งธ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

sendrecv (์–‘๋ฐฉํ–ฅ)์œผ๋กœ ์ฑ„๋„์„ ์˜คํ”ˆํ•œ๋‹ค.

 

๋ฐฅ์€ ๋‹ค์‹œ ์•จ๋ฆฌ์Šค์˜ ์ œ์•ˆ์— ๋Œ€ํ•ด ์ˆ˜๋ฝํ•œ๋‹ค,

 

v=0
o=bob 2890844730 2890844732 IN IP4 host.example.com
s=
c=IN IP4 host.example.com
t=0 0
m=audio 54344 RTP/AVP 4
a=rtpmap:4 G723/8000
a=sendrecv

 

์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์œผ๋กœ G.723 ์ฝ”๋ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ˜‘์ƒ์ด ๋๋‚œ๋‹ค.

 

 

 

์ง€๊ธˆ๊นŒ์ง€ SDP ๋ฉ”์„ธ์ง€ ๋ถ„์„ ๋ฐ ํ˜‘์ƒ ๊ณผ์ •์„ ์•Œ์•„๋ณด์•˜๋‹ค.