Wednesday 1 May 2013

SESSION DESCRIPTION PROTOCOL (SDP)



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>
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= (proto
col 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

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.

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:
    propert
y 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

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).