SIP (Session Initiation Protocol), birden fazla kullanıcı arasında, multimedia oturumlarını ve VoIP telefon görüşmelerini başlatmak, yönetmek ve sonlandırmak için kullanılan, bir uygulama katmanı protokolüdür. “Oturum Açma Protokolü” olarak türkçeleştirilebilir.

IETF (Internet Engineering Task Force) tarafından, 1999 yılında, ilk olarak RFC2543 dokümanında açıklanmıştır. RFC3261 dokümanı ile güncellenmiştir.

Düz metin bir protokoldür. Oturumu başlatır, değişkenleri belirtir, oturumu sonlandırır. Bu yapısı ile HTTP protokolü ile benzerlik gösterir.

Session Initiation Protocol, multimedia iletişiminin kurulması ve sonlandırılması için yapılan sinyalleşmede, aşağıdaki bilgileri iletir:

  • Kullanıcı konumu: İletişim için kullanılacak IP adresi, port gibi konum bilgilerinin iletilmesi.
  • Kullanıcı uygunluk durumu: Aranan tarafın iletişimde bulunma isteğinin belirlenmesi.
  • Kullanıcı yetenekleri: Kullanılacak medya ve medya parametrelerinin belirlenmesi.
  • Oturum başlatma: Hem aranan hem de arayan taraftaki oturum parametrelerinin oluşturulması.
  • Oturum yönetimi: Oturumların aktarılması ve sonlandırılması, oturum parametrelerinin değiştirilmesi v.b.

SIP oturumlarında multimedia tanımlamaları için SDP, RTP gibi diğer IETF protokolleri kullanılır.

SIP Talep ve Cevapları

Bu bölümde SIP talep ve cevaplarına kısa bir giriş yapacağız. SIP protokolü HTTP protokolüne çok benzemektedir. Özellikle web geliştiricisi arkadaşlar çok rahat bir şekilde kavrayacaktır.

SIP Talepleri (Requests)

REGISTER: Bir istemci (User Agent) tarafından, geçerli IP adresini, SIP yapılandırmasını ve çağrı almak istediği URL’leri bildirmek için sunucuya gönderilen kayıtlanma talebidir.

RFC Dokümantasyonundaki örnek sinyalleşme :

REGISTER sip:registrar.biloxi.com SIP/2.0
Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7
Max-Forwards: 70
To: Bob <sip:bob@biloxi.com>
From: Bob <sip:bob@biloxi.com>;tag=456248
Call-ID: 843817637684230@998sdasdh09
CSeq: 1826 REGISTER
Contact: <sip:bob@192.0.2.4>
Expires: 7200
Content-Length: 0
  • INVITE: İstemciler arasında bir medya oturumu oluşturmak için kullanılır.
  • ACK: Gelen SIP request mesajlarını onaylar.
  • CANCEL: Bekleyen bir talebi sonlandırır, ancak tamamlanmış bir çağrıyı geri almaz.
  • BYE: İki kullanıcı arasındaki bir oturumu sonlandırır.
  • OPTIONS: Arayanın yetenekleri hakkında bilgi toplar, ancak arama yapmaz

SIP Cevapları (Responses)

SIP responsları HTTP responslarına çok benzerlik gösterir.

1xx = Bilgilendirme cevapları. Örnek: 100 (trying), 180 (ringing).
2xx = Başarı cevapları. Örnek: 200 (ok)
3xx = Yönlendirme cevapları.
4XX = Talep hataları.
5xx = Sunucu sorunları.
6xx = Küresel hatalar.

RFC Dokümanındaki örnek sinyalleşme :

SIP sinyalleşme
SIP Sinyalleşme
INVITE sip:bob@biloxi.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Bob <sip:bob@biloxi.com>
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:alice@pc33.atlanta.com>
Content-Type: application/sdp
Content-Length: 142

Yukarıdaki sinyalleşmede, Alice’den Bob’a bir INVITE paketi gidiyor. Cevabında atlanta.com ve biloxi.com sunucusundan 100 (trying) mesajı dönüyor. Bob’un register olduğu istemci cihazdan 180 (ringing) cevabı dönüyor. Bu sırada Bob’un telefonu çalıyor. Cevap, sunucular üzerinden Alice’e iletiliyor. Bob çağrıyı cevapladığında 200 (ok) mesajı gönderiyor. Sunucular üzerinden mesaj Alice’e iletiliyor. Alice’den mesajı aldığına dair, bir ACK Paketi gönderiliyor. SDP (Session Description Protocol) da belirtilen media parametreleri üzerinden media oturumu başlatılıyor. Görüşme sonunda Bob’dan bir BYE paketi gönderiliyor. Alice’den 200 (ok) mesajı dönüyor ve oturum sonlandırılıyor.

Bulutfon’da, sanal santral dahili ve trunk hatlar ile yapılan görüşmelerde, SIP protokolü kullanılır.

Kaynaklar : 

Yorum Yap