webrtc

SDP(Session Description Protocol)

growww 2019. 8. 3. 16:17


SDP는 멀티미디어를 전달하는 RTP 프로토콜에 대한 세부적인 내용을 협상합니다.

 

 


 

SDP의 Capability Exchange를 주도하는 라인은 m= 와 a= 로 RTP가 사용할 코덱, IP 주소, 포트넘버가 자세히 명기됩니다. SDP 메세지를 생성하는 UA는 자신이 지원가능한 모든 코덱과 능력을 아래와 같이 명기합니다.    

m=audio 16444 RTP/AVP 0 8 18 101
a=rtpmap:0 PCMU/8000
a=ptime:20
a=rtpmap:8 PCMA/8000
a=ptime:20
a=rtpmap:18 G729/8000
a=ptime:20
a=sendrecv
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15 

 

    • m= (미디어 설명)
      Media Description으로 Media, Port, Protocol, Format을 정의합니다.  
      - Media : audio, video, text, application, message로 표시 
      - Port : 미디어가 전송될 전송포트(Transport port) 표시

      - Protocol : UDP, RTP/AVP, RTP/SAVP로 표시하며  AVP는 Audio VIdeo Profile의 약자 
      - Format : 미디어의 포맷을 서브필드 (a=)로 표시함을 의미 

      Payload Type 0 8 18의 순서는 코덱협상의 우선순위를 나타내며, Payload Type 101은 DTMF 이벤트를 정의합니다. 각 포맷에 대한 상세 설명은 a=에 표시됩니다.
         
    • a= (미디어 속성)
      미디어 속성(attribute)을 정의합니다.  
         - a=rtpmap : payload type, encoding name/clock rate를 표시
         - a=ptime   : paket time으로 미디어 패킷 한 개가 포함한 시간 정보로 ms로 표시 (보통 20ms)
         - a=fmtp     : 미디어 포맷에 대한 파미미터를 정의   

    • a= (미디어의 방향)
      미디어 속성 뿐만 아니라 미디어 방향도 표시합니다. 미디어의 방향은 아래와 같이 4가지로 나타냅니다.  
          - a=sendrecv : 단말은 미디어를 송신 및 수신할 수 있음
          - a=recvonly : 단말은 수신만을 할 수 있으며 송신하지 않음 
          - a=sendonly : 단말은 송신만을 할 수 있으며 수신하지 않음
          - a=inactive : 단말은 송신 및 수신을 할 수 없음 (Hold 버튼을 누를 경우)

      별도의 업급이 없을 경우에는 a=sendrecv로 설정되었다고 가정합니다. 미디어의 방향은 다양한 부가서비스 구현 시 유용합니다.  
        

    • a= (DTMF 협상)
      DTMF 전달에 관한 협상도 진행합니다. 
         - a=rtpmap:101 telephone-event.8000  (RFC 2833에 의한 In-band DTMF를 의미)
         - a=fmtp 101 0-15 (DTMF Tone은 0,1,2,3,4,5,6,7,8,9,0,*,#,A,B,C,D 총 15가지를 송수신함)



출처: https://www.nexpert.net/497 [NExpert]

'webrtc' 카테고리의 다른 글

About WebRTC_basic  (0) 2019.04.11
[해석] WebRTC SFU Load Testing (Alex Gouaillard)  (0) 2018.12.13