Session Initiation Protocol

Session Initiation Protocol (SIP) merupakan standar protocol yang dipublikasikan oleh Internet Engineering Task Force (IETF) sebagai RFC3261. SIP didesain untuk konektifitas antara user dan perangkat dimanapun dan kapanpun mereka dalam pertukaran informasi. Saat ini HTTP dan SMTP merupakan dua protokol yang paling banyak digunakan dalam proses pertukaran informasi, tetapi kedua protokol ini tidak dibuat untuk memprovide aktifitas manusia secara esensial, hanya sebagai protokol yang mensupport kegiatan tersebut. SIP menggabungkan kedua protokol tersebut ke dalam satu kesatuan yaitu menggunakan pola pertukaran informasi (message exchange) dari HTTP, format message, dan encoding serta penggunaan skema URI (user@domain) seperti SMTP.

Entitas

SIP environtment terdiri dari beberapa entitas yang saling terkoneksi yaitu:

  • User Agent (UA) : Entitas yang merepresentasikan end user seperti pada device pada user. Terdapat dua entitas yaitu User Agent Client (UAC) dan User Agent Server (UAS)
  • Proxy Server : Bekerja sebagai routing SIP message ke end point yang sesuai.
  • Redirect Server : Memberikan alamat baru atau route path yang berbeda kepada penerima.
  • Registrar : Bertindak sebagai repository saat ini dari attachment client terhadap network.

Message

SIP Message terdri dari dua macam yaitu :

  • Request : Dikirim dari client ke server dan mendifinisikan operasi yang dibutuhkan oleh client.
  • Response : Dikirim dari server ke client serta memberikan status dari request yang dikirim client.

122811_0556_pengenalans1

Anatomy of a Message

Setiap SIP message dimulai dengan sebuah Start-Line, diikuti dengan sekuens dari header, dan dipisahkan dari message body menggunakan carriage-return line-feed sequence (CRLF).

  • Start-Line: Memiliki format Request-Line for Requests, atau Status-Line for Reponses.
  • Headers: Dinamakan atribut yang memberikan informasi tambahan tentang message.
  • Separator Line: Pemisah antara header and body.
  • Body: binary atau textural payload. Biasanya berupa Session Description Protocol (SDP) atau message text.

Start Line, setiap line header, dan line separator diterminasi menggunakan sebuah sekuens CRLF.

SIP Request Message

Contoh request message adalah sebagai berikut

INVITE sip:bob@897s.aarhus.comSIP/2.0
Via: SIP/2.0/UDP 124.191.8.8:11506
Max-Forwards: 70
To: Bob <sip:bob@897s.aarhus.com>
From: Alice <sip:alice@odense.com>;tag=769122
Call-ID: afh7989asdfhf@ml99.odense.com
CSeq: 3434534 INVITE
Contact: <sip:alice2@vejle.com>
Content-Type: application/sdp
Content-Length: 136

SIP Response Message

Hasil dari response message terhadap request message berupa
SIP/2.0 200 OK
Via: SIP/2.0/UDP 124.191.8.8:11506
To: Bob <sip:bob@897s.aarhus.com>;tag=abgj67
From: Alice <sip:alice@odense.com>;tag=769122
Call-ID: afh7989asdfhf@mel99.odense.com
CSeq: 3434534 INVITE
Contact: <sip:bob2@vejle.com>
Content-Type: application/sdp
Content-Length: 132

Contoh Call Flow

Pada kasus di bawah ini terjadi sesi anara Alice dan Bob mengganak SIP User Agents yang berbeda. Proses pembangunan koneksi adalah sebagai berikut122811_0556_pengenalans2

 

Session Setup

  • UA Alice mengirim INVITE message ke alamat SIP Bob (contoh ‘sip:bob@example.com’). Konten dari message berupa SDP yang mendeskripsikan media yang ditukarkan.
  • UA Bob menerima INVITE dan memberikan respon dengan 100 Trying Message.
  • UA kemudian berinteraksi dengan memberikan 180 Ringing ke Alice.
  • Bob memberikan response 200 OK message. Respon ini terdiri dari message SDP Bob yang telah disetujui.
  • Akhirnya Alice memberikan acknowledgement dengan ACK request.
  • Media stream tersambung secara langsung antara alice dan bob berupa protokol lain seperti RTP.

Sessino Tear Down

Pada akhir call, SIP digunakan untuk mengakhiri (tear down) sesi. Jika bob yang mengakhiri sesi, maka

  • Bob menutup dan UA nya menginisisasi terminasi dengan mengirim BYE request kepada alice
  • UA Alice memberikan response dengan 200 OK.

Basic setup dan tear down tersebut dapat digunakan dalam konektifitas media baik berupa voice, video, stream, Instant Messaging, maupun conference.