SIP (Session Initiation Protocol - Oturum Başlatma Protokolü) iki ya da daha fazla katılımcı arasında bağlantı kuran, oturum başlatan ve gerçek zamanlı protokoller aracılığıyla veri taşınmasını sağlayan bir ağ protokolüdür. SIP, ağ üzerinden telefon görüşmeleri başta olmak üzere ses ve görüntü gibi çoklu ortam aktarımında oturum başlatmak için yaygın olarak kullanılır. Veri aktarımı ise RTP (Real Time Protokol - Gerçek Zamanlı Protokol) aracılığıyla sağlanır. SIP'in genel olarak;
- Bağlantı kurulmak istenen katılımcının adresini saptar ve adres çözümlemesi yapar.
- Bağlantı kurulmak istenen katılımcının uygun olup olmadığını belirler ve katılımcılar arasında oturum başlatır.
- Bağlantı kurulan katılımcıların desteklediği çoğul ortam türlerini belirler ve katılımcılara göre optimal olan çoğul ortamı seçer. Örneğin; ikiden çok katılımcı arasında kurulan bağlantılarda veri, SIP'in belirlediği ve tüm istemciler tarafından ortak olarak desteklenen çoklu ortam türünde aktarılır.
- Katılımcılar arasında oturum başladıktan sonra, yeni katılımcının bağlanması ya da var olan katılımcının ayrılması gibi işlemleri yönetir. Oturumların sonlandırılmasını sağlar.
Bir Peer to Peer (Noktadan Noktaya) protokolüdür. Noktalar User Agent (Kullanıcı Aracısı) olarak adlandırılır ve iki gruba ayrılırlar:
- UAC (User Agent Client – Kullanıcı Aracı İstemcisi): Kullanıcı uygulamasıdır ve SIP isteğini başlatır.
- UAS (User Agent Server – Kullanıcı Aracı Sunucusu): Sunucular üzerinde çalışır ve SIP isteklerini dinleyerek oturumların kurulmasını, çağrıların kabul edilmesini, yönlendirilmesini veya reddedilmesini sağlar.
SIP istemcilerini Softphone (Yazılımsal Telefon) ve IP (Internet Protocol – İnternet Protokolü) telefonları oluşturur. Yazılımsal telefonlar, genel amaçlı bilgisayarlar üzerinde çalıştırılırlar bu nedenle IP telefonlara göre çok daha kullanışlıdır. X-Lite, Ekiga, Twinkle sıklıkla kullanılan yazılımsa telefonlardır. İstanbul Teknik Üniversitesi genelinde yazılımsal telefon olarak X-Lite kullanılmakta ve Bilgi İşlem Daire Başkanlığı tarafından bu yazılıma destek verilmektedir. IP telefonlar ise başlıca Cisco, Nortel ve Avaya tarafından üretilmektedir. SIP sunucuları ise Proxy (Vekil) ve Redirect (Yönlendirme) sunucularıdır.
SIP çalışma sistemi bakımından HTTP (Hypertext Transfer Protocol - Hipermetin Aktarma İletişim Kuralı) benzemektedir. Bu protokolde kullanıcılar kullaniciadi@alanadi şeklinde adlandırılırlar. SIP kullanıcısı, kullanıcı aracıyla sunucuya internet protokolüyle kayıt olduktan sonra diğer kullanıcılar ile oturum kurabilir ya da kendisine gelen oturum isteklerine cevap verebilir. SIP uygulamaları kendi aralarında özelleşmiş mesajlarla konuşurlar. Mesajlardan Request (İstek) mesajları aşağıdaki gibidir;
- Register (Kayıt): Kullanıcı aracıları tarafından SIP sunuculara internet protokol adreslerini kayıt ettirmek istediklerini belirtir.
- Invite (Davet): Kullanıcılar arasında oturum başlatmak için kullanılır.
- Ack (Bilgi): Gelen mesajların anlaşıldığını doğrulamak için kullanılır.
- Cancel (İptal): İsteği iptal eder.
- Bye (Güle Güle): Kullanıcılar arasındaki oturumları sonlandırır
- Options (Seçenekler): Arama başlatmaksızın diğer kullanıcıların yeterliliklerini ister.
Response (Cevap) mesajları;
- Provisional (Geçici): İstek geldi ve işleniyor anlamına gelir. Kodu 1xx şeklindedir.
- Success (Başarılı): İstek başarıyla alındı, anlaşıldı e kabul edildi. Kodu 2xx şeklindedir.
- Redirection (Yeniden Yönlendirme): İsteğin tamamlanabilmesi için sıradaki olayların gerekltiğini belirtir. Kodu 3xx şeklindedir.
- Client Error (İstemci Hatası): Kodu 4xx şeklinde olan bu mesajın anlamı isteğin sözdizimi hataları içerdiğidir.
- Server Error (Sunucu Hatası): SIP sunucusunun isteği başarıyla yorumlayamadığını belirtir. Kodu 5xx şeklindedir.
- Global Failure (Genel Hata): İsteğin hiçbir sunucuda anlaşılamayacağını belirtir. Kodu 6xx şeklindedir.
Redirect (Yönlendirme) sunucusu ile çalışan SIP yapısında kullanıcı oturum başlatmak istediği kullanıcıyı yönlendirme sunucusuna bildirir ve sunucudan aldığı cevap doğrultusunda diğer kullanıcıya oturum başlatma isteğini direk olarak gönderir.
Proxy (Vekil) sunucusu aracılığıyla SIP yapısında ise, SIP mesajları sunucu aracılığıyla iletilir ve gerçek zamanlı bağlantı kurulana kadar sunucu, kullanıcıların arasında vekil görevi yapar.
Gerçek zamanlı protokolle haberleşmeyi sona erdirmek ve oturumu sonlandırmak için istemciler arasında Bye (Güle Güle) mesajı gönderilir. Sonrasında oturum SIP kontrolü altında sonlandırılır.