2.01.2559

SDP

SDP : Session Description Protocol

Session Description Protocol เป็นโปรโตคอลมาตฐานตาม RFC 4566
SDP มีเพื่ออธิบาย multimedia sessions สำหรับจุดประสงค์ในการ session announcement, session invitation และรูปแบบอื่นๆของ multimedia session initiation
SDP ถูกเรียกใช้จาก VoIP Signaling Protocol เช่น SIP, H.323 และบาง VoIP Protocol เพื่อ transfer media setup information เกี่ยวกับ multimedia client จาก A ไป B

SDP จะอยู่ใน SIP INVITE Message และ 183 Session Progress

ดูตัวอย่างต่อไปนี้นะครับ

INVITE sip:6621010000@192.168.5.123:5060;user=phone SIP/2.0..
Via: SIP/2.0/UDP 192.168.5.5:5060;branch=z9hG4bK1ca4589054b6666f2-4f525-0..
Max-Forwards: 70..
Contact: <sip:66851140000@192.168.5.5:5060>..
To: <sip:6621010000@192.168.5.123:5060>..
From: <sip:66851140000@192.168.5.5:5060>;tag=430c6c2-co3249-INS001..
Call-ID: 51246cf51886b6a652233787b8c7122c@192.168.5.15..
CSeq: 324901 INVITE..
Content-Type: application/sdp..
Date: Mon, 01 Feb 2010 05:30:26 GMT..
User-Agent: ENS2.5.31-IS1-RMRG23-RG100-CPO245..
Content-Length: 304....
v=0..
o=- 70305474 70305474 IN IP4 192.168.5.5..
s=ENSResip..
c=IN IP4 192.168.5.20..
t=0 0..
m=audio 12198 RTP/AVP 18 8 0 4 2 97..
a=fmtp:97 0-15..
a=rtpmap:18 G729/8000..
a=rtpmap:8 PCMA/8000..
a=rtpmap:0 PCMU/8000..
a=rtpmap:4 G723/8000..
a=rtpmap:2 G726-32/8000..
a=rtpmap:97 telephone-event/8000..
a=sendrecv..

===================================================

SIP/2.0 183 Session Progress..
Via: SIP/2.0/UDP 192.168.5.5:5060;branch=z9hG4bK1ca4589054b666b13-95b51-0..
Record-Route: <sip:192.168.5.123:5060;lr>..
From: <sip:6622480000@192.168.5.5:5060>;tag=452ede66-co6132-INS001..
To: <sip:6621010000@192.168.5.123:5060>;tag=as3d0e1c30..
Call-ID: 84269fbeb806626c47360b37955bb319@192.168.5.15..
CSeq: 613201 INVITE..
User-Agent: Asterisk PBX..
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY..
Supported: replaces..
Contact: <sip:6621010000@192.168.5.123:5060>..
Content-Type: application/sdp..
Content-Length: 308....
v=0..
o=root 16003 16003 IN IP4 192.168.5.91..
s=session..
c=IN IP4 192.168.5.91..
t=0 0..
m=audio 16964 RTP/AVP 18 0 8 97..
a=rtpmap:18 G729/8000..
a=fmtp:18 annexb=no..
a=rtpmap:0 PCMU/8000..
a=rtpmap:8 PCMA/8000..
a=rtpmap:97 telephone-event/8000..
a=fmtp:97 0-16..
a=silenceSupp:off - - - -..
a=ptime:20..
a=sendrecv..

ฟิลด์ที่มีเครื่องหมายดอกจันทน์ * เป็นออปชั่นนะครับ มีหรือไม่มีก็ได้ 

Session description 
v= เวอร์ชั่น 
o= เจ้าของหรือผู้สร้างและตัวบ่งชี้เซสชั่น 
s= ชื่อเซสชั่น 
i=* ข้อมูลเซสชั่น 
u=* เป็น URI ของ Description 
e=* อีเมล์แอดเดรส 
p=* เบอร์โทรศัพท์ 
c=* ข้อมูลการเชื่อมต่อ แต่ไม่ต้องใช้ถ้ามีข้อมูลอยู่ในทุกๆ media แล้ว 
b=* ข้อมูลแบนวิดธ์ 
มี Description เกี่ยวกับเวลาด้วย ดังนี้ 
z=* ปรับแต่งเวลา time zone
k=* คีย์เข้ารหัส 
a=* เป็น 0 หรือมี session attribute เพิ่มเติม 

Time description 
t= เวลาที่เซสชั่นแอ๊คทีฟ หรือเรียกว่า Session Timer ถ้ามีค่าเป็น 0 คือไม่กำหนดเวลาสูงสุดที่โทรได้ โทรได้ไปเรื่อยๆจนกว่าจะวางสาย ตามปกตินะครับเวลาเราคอนฟิกอุปกรณ์ VoIP จะมีให้ใส่ Session Timer ด้วย ซึ่งเป็นเวลาสูงสุดที่จะโทรได้ในแต่ละครั้ง และในระบบโทรแบบคิดเงิน จะใช้ฟิลด์นี้กำหนดว่าลูกค้าจะโทรได้นานเท่าไหร่ (ตามจำนวนเงินที่เหลืออยู่) 
r=* เป็น 0 หรือซ้ำกันหลายๆครั้ง 

Media description 
m= ชื่อ media เช่น audio, video และหมายเลขพอร์ต RTP 
i=* media title 
c=* ข้อมูลการเชื่อมต่อ เช่น IP Address
b=* แสดงแบนวิดธ์
k=* คีย์เข้ารหัส 
a=* เป็น Codec หรือขนาดแพ็กเก็ตของ Voice 

RTP Payload Type Numbers 
RTP Payload Type Numbers หรือ PT จะอยู่ในบรรทัด m= และ rtpmap ซึ่งจะบ่งบอก Codec ที่รองรับ ตัวอย่าง RTP Payload Type Number มีดังนี้ครับ

PT=0 G.711 ulaw (PCMU)
PT=3 GSM
PT=4 G.723.1
PT=8 G.711 alaw (PCMA)
PT=9 G.722
PT=18 G.729
PT=31 H.261 (Video)
PT=34 H.263 (Video)

Credit : http://www.voip4share.com/voip-f39/sdp-voip-t280.html

ไม่มีความคิดเห็น:

แสดงความคิดเห็น