Session Description Protocol
(SDP) adalah seperangkat aturan yang mendefinisikan
bagaimana session multimedia
dapat diatur untuk memungkinkan semua end user untuk berpartisipasi secara efektif dalam suatu session. SDP adalah format
untuk menggambarkan parameter inisialisasi media
streaming.
SDP dimaksudkan untuk menggambarkan session
komunikasi multimedia untuk tujuan pengumuman session, undangan session, dan
parameter negosiasi. SDP tidak mengirimkan media itu sendiri tetapi digunakan untuk melaksanakan
negosiasi
antar end user dari jenis media, format, dan semua properti
terkait. Himpunan sifat dan parameter sering disebut profil session. SDP
dirancang untuk diperluas untuk mendukung jenis dan format media baru.
SDP awalnya merupakan komponen Seccion
Announcement Protocol (SAP), tetapi kemudian ditemukan kegunaan-kegunaan
lain dalam hubungannya
dengan Real-time Transport Protocol (RTP), Real-time Streaming Protocol (RTSP),
Session Initiation Protocol (SIP) dan bahkan sebagai Format mandiri untuk
menggambarkan session multicast.
Deskripsi Session
Session digambarkan sebagai serangkaian field, satu per baris.
Bentuk masing-masing field adalah sebagai berikut.
<character> = <value>
<character> = <value>
Dimana <character> adalah sebuah
karakter
single case yang
signifikan
dan nilainya berupa teks terstruktur yang formatnya tergantung pada
jenis atribut. Value tersebut biasanya berupa UTF-8 encoding. Penggunaan
spasi
tidak diperbolehkan baik sebelum maupun sesudah tanda “=”.
Dalam pesan SDP terdapat tiga bagian utama, perincian
dari session tersebut, timing, dan deskripsi media. Setiap pesan dapat
berisi beberapa timing dan deskripsi media. Nama yang digunakan merupakan suatu
kode
unik yang digunakan dalam membangun sintaksis terkait, yaitu dalam session, waktu, ataupun media.
Dalam SDP, parameter session mencakup
berbagai informasi
seperti nama session, tanggal
dan waktu di mana session tersebut
akan dimulai, tujuan session, alamat atau
port dari semua end user, format data yang akan digunakan dan bandwidth yang
dibutuhkan
untuk menjalankan
pertukaran data secara efektif.
Value opsional ditentukan
dengan tanda “= *” dan setiap field-nya harus muncul dalam
urutan di bawah ini.
Deskripsi session
v= (protocol version number, saat ini hanya 0)
o= (originator and session identifier: username, id, version number, alamat jaringan)
s= (session name: wajib, minimal terdapat satu karakter UTF-8-encoded)
i=* (session title atau informasi pendek)
u=* (URI deskripsi)
e=* (0 atau lebih alamat email dengan optional name of contacts)
p=* (0 atau lebih nomor telepon dengan optional name of contacts)
c= (informasi koneksi, tidak diperlukan jika telah disertakan dalam semua media) *
b=* (0 atau lebih baris informasi bandwidth)
z=* (penyesuaian zona waktu)
k=* (encryption key)
a=* (0 atau lebih baris atribut session)
Keterangan Waktu (wajib)
t= (waktu suatu session aktif)
r=* (0 atau beberapa kali pengulangan)
Deskripsi media (jika ada)
m= (nama media dan alamat transport)
i=* (judul media atau information field)
c=* (informasi koneksi, opsional jika telah disertakan pada session level)
b=* (0 atau lebih baris informasi bandwidth)
k=* (encryption key)
a=* (0 atau lebih media attribut lines , meng-override session attribut lines)
Deskripsi session
v= (protocol version number, saat ini hanya 0)
o= (originator and session identifier: username, id, version number, alamat jaringan)
s= (session name: wajib, minimal terdapat satu karakter UTF-8-encoded)
i=* (session title atau informasi pendek)
u=* (URI deskripsi)
e=* (0 atau lebih alamat email dengan optional name of contacts)
p=* (0 atau lebih nomor telepon dengan optional name of contacts)
c= (informasi koneksi, tidak diperlukan jika telah disertakan dalam semua media) *
b=* (0 atau lebih baris informasi bandwidth)
z=* (penyesuaian zona waktu)
k=* (encryption key)
a=* (0 atau lebih baris atribut session)
Keterangan Waktu (wajib)
t= (waktu suatu session aktif)
r=* (0 atau beberapa kali pengulangan)
Deskripsi media (jika ada)
m= (nama media dan alamat transport)
i=* (judul media atau information field)
c=* (informasi koneksi, opsional jika telah disertakan pada session level)
b=* (0 atau lebih baris informasi bandwidth)
k=* (encryption key)
a=* (0 atau lebih media attribut lines , meng-override session attribut lines)
Berikut adalah contoh deskripsi session (dari RFC 4566).
Deskripsi
session ini telah diusulkan kepada client penerima (username
"jdoe") yang meminta session dari host-nya yang terletak di alamat
IPv4 10.47.16.5 untuk menjalankan session bernama "SDP
Seminar" (di-announce secara terpisah oleh media server ) yang
dideskripsikan oleh server SDP dengan judul/title lengkapnya "Seminar melalui
Session Deskription Protocol" (disertai
dokumentasi
PDF bahwa client bisa men-download secara terpisah jika memerlukan informasi
lebih lanjut). Session ini juga berisi deskripsi dari dua non-interaktive (hanya menerima)
media (audio dan video) yang merupakan bagian dari session yang diusulkan ini. Konten media yang tersedia (dalam
contoh ini tanpa adanya secure access control yang jelas) pada media server
host yang tersedia (ditunjukkan pada level parameter Session,
yang memiliki contact bernama "Jane Doe" dan dapat dijangkau berdasarkan alamat emailnya), memancarkan dan mengirimkan kedua media streamnya menggunakan protokol RTP di atas
UDP dalam basic RTP Audio Video Profile (RTP / AVP), dari alamat IPv4 multicast
224.2.17.12 (dengan IP Multicast Time to Live hingga 127 hops), dan menggunakan
UDP port 49170 untuk media data stream audio di-encode-kan menggunakan RTP / AVP audio
format 0
(yang pemetaannya ter-registeri di the IANA registry of
standard RTP formats) dengan port UDP 49171 untuk control channel
(ditambahkan
secara implisit untuk RTP) , dan port UDP 51372 untuk data media dari video
stream (di-encodemenngunakan
server-defined RTP/AVP video format 99, dimana server SDP
mendefinisikan dan memetakannya sebagai "video/h263-1998" media codec) yang
terkait
dengan UDP port 51373 untuk saluran kontrol (ditambahkan secara implisit untuk RTP):
v= 0
o= jdoe 2890844526 2890842807 IN IP4 10.47.16.5
s= SDP Seminar
i= Seminar melalui Session Description Protocol
u= http://www.example.com/seminars/sdp.pdf
e= j.doe@example.com (Jane Doe)
c= IN IP4 224.2.17.12/127
t= 2873397496 2873404696
a= recvonly
m= audio yang 49.170 RTP/AVP 0
m= video 51.372 RTP/AVP 99
a= rtpmap: 99 h263-1998/90000
v= 0
o= jdoe 2890844526 2890842807 IN IP4 10.47.16.5
s= SDP Seminar
i= Seminar melalui Session Description Protocol
u= http://www.example.com/seminars/sdp.pdf
e= j.doe@example.com (Jane Doe)
c= IN IP4 224.2.17.12/127
t= 2873397496 2873404696
a= recvonly
m= audio yang 49.170 RTP/AVP 0
m= video 51.372 RTP/AVP 99
a= rtpmap: 99 h263-1998/90000
Perhatikan bahwa deskripsi SDP hanya
berisi deskripsi untuk pengguna "jdoe" dari media yang diusulkan oleh
RTP / AVP server media yang terdeskripsi untuk session-nya. Meskipun tidak dijelaskan
bagaimana
user (atau user user agent-nya) mencapai server SDP untuk mendapatkan deskripsi
tersebut. Tidak ditunjukkan pula apakah dan bagaimana "jdoe" mengenali session name
"SDP
Seminar" dan menemukan server SDP yang mengusulkan deskripsi
ini (ini memerlukan protokol terpisah untuk SDP Announcement dari session yang tersedia). Deskripsi SDP ini juga tidak menyebutkan apakah media tersebut
akan dijalankan oleh user agent jdoe dan bagaimana caranya. Pada titik ini, RTP/AVP
media server masih belum terjangkau oleh client untuk media tersebut.
Spesifikasi SDP juga tidak mengindikasikan transport protocol mana yang dapat dikirimi deskripsi SDP ini untuk client. Biasanya akan dikirim oleh server SAP dalam pesan announcement, tapi bisa juga disampaikan oleh web server, atau dikirim seperti dalam email attachment. Sebenarnya SDP bukan benar-benar merupakan sebuah protokol tetapi format pesan itu sendiri, dengan jenis kontennya sendiri. Konten akan valid untuk jangka waktu yang terbatas, deskripsi SDP berisi berbagai range tanggal validitas mana yang harus tersedia, disini digunakan waktu start dan stop.
Spesifikasi SDP juga tidak mengindikasikan transport protocol mana yang dapat dikirimi deskripsi SDP ini untuk client. Biasanya akan dikirim oleh server SAP dalam pesan announcement, tapi bisa juga disampaikan oleh web server, atau dikirim seperti dalam email attachment. Sebenarnya SDP bukan benar-benar merupakan sebuah protokol tetapi format pesan itu sendiri, dengan jenis kontennya sendiri. Konten akan valid untuk jangka waktu yang terbatas, deskripsi SDP berisi berbagai range tanggal validitas mana yang harus tersedia, disini digunakan waktu start dan stop.
Atribut
SDP menggunakan atribut untuk
memperpanjang protokol inti. Atribut dapat muncul dalam session atau media section. Atribut baru terkadang
ditambahkan
ke standar yang ada melalui regristasi dengan IANA.
Terdapat dua bentuk atribut:
property form : a=flag membawa properti Boolean sederhana dari media atau session.
value form : a=atribut: valuemenyediakan parameter yang sudah bernama.
Dua atribut ini didefinisikan secara khusus:
a=charset: encoding
a=sdplang: Kode
Terdapat dua bentuk atribut:
property form : a=flag membawa properti Boolean sederhana dari media atau session.
value form : a=atribut: valuemenyediakan parameter yang sudah bernama.
Dua atribut ini didefinisikan secara khusus:
a=charset: encoding
a=sdplang: Kode
Absolute times direpresentasikan dalam Network Time
Protocol (NTP) format (jumlah detik sejak tahun 1900). Jika waktu
berhenti adalah 0 maka session adalah "tak terbatas." Jika waktu
mulai juga nol maka session dianggap "permanen." Session tak terbatas
dan permanen tidak dianjurkan tapi juga tidak dilarang. Interval dapat
direpresentasikan dengan Network Time Protocol
atau dengan waktu yang diinputkan: value and time units (days ('d'), hours ('h'),
minutes ('m') and seconds ('s')) sequence.
Jadi pertemuan1 jam dari 10:00 UTC pada tanggal 1 Agustus
2010, dengan waktu pengulangan tunggal seminggu kemudian pada jam yang sama dapat
direpresentasikan sebagai:
t = 1280656800 1281265200
r = 604800 3600 0
Atau menggunakan:
t = 1280656800 1281265200
r = 7d 1h 0
t = 1280656800 1281265200
r = 604800 3600 0
Atau menggunakan:
t = 1280656800 1281265200
r = 7d 1h 0
Ketika waktu pengulangan ditentukan
secar spesifik, waktu start untuk setiap pengulangan mungkin perlu disesuaikan
sehingga akan dijalankan pada waktu yang sama berasarkan waktu setempat di
zona waktu tertentu selama periode antara waktu mulai dan waktu berhenti (yang
masih ditentukan dalam format NTP dalam UTC zona mutlak).