SIP

Vikipedi, özgür ansiklopedi
(Session Initiation Protocol sayfasından yönlendirildi)
İnternet iletişim kuralları dizisi

OSI modeli

Katman İletişim kuralları
7. Uygulama katmanı HTTP, DNS, SMTP, FTP, TFTP, UUCP, NNTP, SSL, SSH, IRC, SNMP, SIP, RTP, Telnet, ...
6. Sunum katmanı ISO 8822, ISO 8823, ISO 8824, ITU-T T.73, ITU-T X.409, ...
5. Oturum katmanı NFS, SMB, ISO 8326, ISO 8327, ITU-T T.6299, ...
4. Ulaşım katmanı TCP, UDP, SCTP, DCCP, ...
3. Ağ katmanı IP, IPv4, IPv6, ICMP, ARP, İnternet Grup Yönetim Protokolü, IPX,...
2. Veri bağlantısı katmanı Ethernet, HDLC, Wi-Fi, Token ring, FDDI, PPP, L2TP...
1. Donanım katmanı ISDN, RS-232, EIA-422, RS-449, EIA-485, ...
Oturum başlatma Protokolü (SIP)

Oturum başlatma Protokolü (SIP), ses, video ve mesajlaşma uygulamalarını içeren gerçek zamanlı oturumları başlatmak, sürdürmek ve sonlandırmak için kullanılan bir sinyal protokolüdür. VoIP gibi IP üzerinden üzerinden ses, görüntü ve anlık mesaj iletişimi yanı sıra LTE (VoLTE) üzerinden cep telefonu araması için multimedya iletişim oturumlarını sinyalize etmek ve kontrol etmek için kullanılır. Günümüz IP Telefonlarının çoğunluğu SIP Protokolü ile çalışmaktadır. Cisco gibi bazı üreticiler SIP kullanmakla beraber bazı telefon modellerinde SCCP tercih etmektedir.

Protokol, değiştirilen mesajların belirli biçimini ve katılımcıların işbirliği için iletişim sırasını tanımlar. SIP, köprü metni aktarım Protokolü'nün (HTTP) ve basit posta aktarım Protokolü'nün (SMTP) birçok öğesini içeren metin tabanlı bir protokoldür. SIP ile kurulan bir çağrı birden fazla medya akışından oluşabilir, ancak kısa mesaj gibi uygulamalar için ayrı bir akış gerekmez, bu da SIP mesajında veri yükü olarak veri alışverişi yapar.

SIP, oturum medyasını belirten ve taşıyan diğer birkaç protokolle birlikte çalışır. En yaygın olarak, ortam türü ve parametre Anlaşması ve ortam kurulumu, SIP iletilerinde yük olarak taşınan oturum Açıklama Protokolü (SDP) ile gerçekleştirilir. SIP, temel aktarım katmanı protokolünden bağımsız olacak şekilde tasarlanmıştır ve kullanıcı Datagram Protokolü (UDP), iletim kontrol Protokolü (TCP) ve akış kontrol iletim Protokolü (SCTP) ile kullanılabilir. Güvenli olmayan ağ bağlantıları üzerinden SIP iletilerinin güvenli iletimi için, protokol aktarım katmanı güvenliği (TLS) ile şifrelenebilir. Medya akışlarının (ses, video) iletimi için SIP mesajlarında taşınan SDP yükü tipik olarak gerçek zamanlı Aktarım Protokolü (RTP) veya güvenli gerçek zamanlı Aktarım Protokolü (SRTP) kullanır.

SIP, uygulama katmanında çalışır ve HTTP protokolüne çok benzer düz metin bir protokoldür. Oturum açar, oturum parametrelerini değiştirir, oturumu sonlandırır. Oturumlar IP telefon çağrıları, multimedya sunumlar veya konferans şeklinde olabilir.Aynı zamanda mevcut bir oturuma kullanıcı çağırabilir. Mevcut oturuma medya ekleyebilir, çıkarabilir.

SIP'in bir oturum kurmak için ve sonlandırmak için gerçekleştirdiği 5 fonksiyon vardır:

  1. Kullanıcı konumunu belirlemek.
  2. Bağlantıya katılacak kullanıcıları tespit etmek.
  3. Uçların kapasitelerini tespit edip o şekilde medya parametrelerini ayarlamak.
  4. Çağrı yapma ve iki uçtaki çağrı parametrelerini ayarlamak.
  5. Oturum yönetmek.

SIP'in kendisi bir veri taşıma protokolu değildir. SIP veriyi RTP gibi bir protokolle gerçek zamanlı taşıyabilir.

HTTP'ye çok benzer. Aşağıdaki gibi bir mesaj yapısı vardır:

SIP/2.0 200 OK
To: "1379"
From: "13579" ;tag=4448294d
Via: SIP/2.0/UDP 10.0.0.11:9186;branch=z9hG4bK-c87542-804015279-1--c87542-;rport
Call-ID: c63d1e7d5f3e1c29
CSeq: 1 REGISTER
Contact:
Expires: 3600
Max-Forwards: 69
User-agent: eyeBeam release 3002s stamp 15131
Content-Length: 0

SIP'te özel görevleri olan metotlar vardır. "Register" bunların en önemlisidir. "Register" komutunu kabul eden ve kullanıcı kayıtlarını tutan sunuculara registrar denir. Konuşmak isteyen uçlar bir registrar'a kayıt olur. "Register" iki uç arasında bağlantı kurar. "Invite" metodu, diyalog başlatmak için tek yoldur.

Tarihi[değiştir | kaynağı değiştir]

SIP, 1996 yılında Mark Handley, Henning Schulzrinne, Eve Schooler ve Jonathan Rosenberg tarafından tasarlandı. Protokol, 1999 yılında RFC [rfc:2543 2543] olarak standartlaştırılmıştır. Kasım 2000'de SIP, 3GPP sinyal protokolü ve hücresel ağlarda IP tabanlı akışlı multimedya hizmetleri için IP multimedya alt sistemi (IMS) mimarisinin kalıcı unsuru olarak kabul edildi. Haziran 2002'de şartname RFC [rfc:3261 3261]'de revize edildi[3] ve o zamandan beri çeşitli uzantılar ve açıklamalar yayınlandı.[1]

SIP, yeni multimedya uygulamalarını destekleme vizyonu ile genel anahtarlamalı telefon şebekesinde (PSTN) bulunan çağrı işleme işlevlerini ve özelliklerini destekleyen IP tabanlı iletişim için bir sinyal ve çağrı kurulum protokolü sağlamak üzere tasarlanmıştır. Video konferans, akış medya dağıtımı, anlık mesajlaşma, durum bilgileri, dosya aktarımı, İnternet faksı ve çevrimiçi oyunlar için genişletildi.[2]

SIP, telekomünikasyon endüstrisinden ziyade internet topluluğunda kökleri olduğu için savunucuları tarafından ayırt edilir. SIP, öncelikle IETF tarafından standartlaştırılırken, H. 323 gibi diğer protokoller geleneksel olarak uluslararası Telekomünikasyon Birliği (ITU) ile ilişkilendirilmiştir.

Protokol Çalışma Yapısı[değiştir | kaynağı değiştir]

SIP, yalnızca bir medya iletişim oturumunun sinyalizasyon kısmında yer alır ve sesli veya görüntülü çağrıları kurmak ve sonlandırmak için kullanılır. SIP, iki taraf (tek noktaya yayın) veya çok partili (çok noktaya yayın) oturumları oluşturmak için kullanılabilir. Ayrıca mevcut aramaların transfer edilmesine (yönlendirilmesine) de izin verir.

SIP, taşınacak/iletilecek medya biçimini ve kodlamayı belirten diğer birkaç protokol ile birlikte çalışır. Çağrı kurulumu için, ortam biçimini, codec türünü ve medya iletişim protokolünü belirten bir oturum Açıklama Protokolü (SDP) veri birimi içerir. Ses ve video medya akışları genellikle Gerçek Zamanlı Aktarım Protokolü (RTP) veya Güvenli Gerçek Zamanlı Aktarım Protokolü (SRTP) kullanılarak terminaller arasında taşınır.

SIP, HTTP istek ve yanıt işlem modeline benzer tasarım öğeleri kullanır. Her işlem, sunucuda belirli bir yöntemi veya işlevi çağıran bir istemci isteğinden ve en az bir yanıttan oluşur. SIP, başlık alanlarının çoğunu, http kodlama kurallarını ve durum kodlarını yeniden kullanır ve okunabilir bir metin tabanlı format sağlar.

SIP, iletim kontrol Protokolü (TCP), kullanıcı Datagram Protokolü (UDP) ve akış kontrol iletim Protokolü (SCTP) dahil olmak üzere çeşitli aktarım katmanı protokolleri tarafından taşınabilir. SIP istemcileri genellikle sunuculara ve diğer uç noktalara SIP trafiği için 5060 veya 5061 numaralı bağlantı noktalarında TCP veya UDP kullanır. Bağlantı noktası 5060, şifrelenmemiş sinyal trafiği için yaygın olarak kullanılırken, bağlantı noktası 5061 genellikle aktarım katmanı güvenliği (TLS) ile şifrelenmiş trafik için kullanılır.

SIP Mesajları[değiştir | kaynağı değiştir]

SIP, HTTP'ye benzer sözdizimine sahip metin tabanlı bir protokoldür. İki farklı SIP mesajı türü vardır: talepler ve yanıtlar. Bir talebin ilk satırında, isteğin niteliğini tanımlayan bir yöntem ve isteğin nereye gönderilmesi gerektiğini belirten bir "Request-URI" bulunur. Yanıtın ise ilk satırında bir yanıt kodu vardır.

Talepler[değiştir | kaynağı değiştir]

Talepler, protokolün işlevselliğini başlatır. Bir kullanıcı Aracısı istemcisi tarafından sunucuya gönderilir ve işlemin sonuç kodunu döndüren ve genellikle işlemin başarısını, başarısızlığını veya diğer durumunu gösteren bir veya daha fazla SIP yanıtıyla yanıtlanır.

SIP Talep Mesajları
Talep Paketi Açıklama Not RFC
REGISTER "To-Header" Kısmında belirtilen IP Adresine belitilen numara için kayıt isteği gönderir. Hangi abonenin nereden kayıt olduğunu belirlemek ve oturumu başlatmak için kullanılır. RFC 3261
INVITE Arama yapan telefon veya sistem tarafından, aranacak numaraya gönderilen ilk mesajdır. Çağrıyı başlatmak için kullanılır. Çağrı sırasında bir değişiklik olursa (örneğin çağrıyı beklemeye almak gibi) "Re-Invite" paketi gönderilir. RFC 3261
ACK Son gönderilen invite mesajına gelen cevabın alındığını belirtir. RFC 3261
BYE Çağrıyı sonlandırmak için kullanılır Genellikle görüşme yapan iki telefondan hangisi önce kapatırsa onun tarafından gönderilir RFC 3261
CANCEL Herhangi bir bekleyen talep mesajı varsa onu iptal eder Genellikle çalan bir telefonu iptal etmek için olur. RFC 3261
UPDATE Görüşme sırasında değişmesi gereken bir bilgi var ise, yeni çağrı kurulmasına gerek kalmadan bu paket ile güncellenir. RFC 3311
REFER Çağrı transferi sırasında kullanılır. RFC 3515
PRACK Geçici onay paketi 1xx ile başlayan kodlar ile bir cevap alır. RFC 3262
SUBSCRIBE Bir servise kayıt olmak için gönderilir RFC 6665
NOTIFY Bir servise kayıt isteği oluştuğunda gönderilen bilgi paketidir RFC 6665
PUBLISH Genel olarak bir olay olduğunda duyuru yapar. RFC 3903
MESSAGE Metin türünde mesaj gönderir. Anlık mesajlaşma uygulamalarında kullanılır. RFC 3428
INFO Oturum sırasında herhangi bir gelişme olduğunda bu bilgileri aktarmakta kullanılır. DTMF tuşlamaları gibi mesajları iletebilir RFC 6086
OPTIONS Çağrı yapılacak bir telefon gibi cihazın kabiliyetlerini önceden anlamak için gönderilen mesajdır. Ağ üzerinde NAT var ise bununla ilgili bilgi almaya da yarar. RFC 3261

Cevaplar[değiştir | kaynağı değiştir]

Yanıtlar, alınan bir isteğin sonucunu gösteren paketlerdir. Daha anlaşılabilir ve hızlı okunabilmesi için 3 haneli numaralar ile sınıflara ayrılmıştır. 4xx, 4 ile başlayan cevap paketi anlamına gelmektedir. Örneğin 404.

  • 1xx: Taleplere verilen geçici yanıtlardır. Talebin geçerli olduğunu ve işlenmekte olduğunu gösterir.
  • 2xx: Talebin başarıyla tamamlanması anlamına gelir. Bir talebe yanıt olarak, bir çağrının kurulduğunu gösterir. En yaygın kod, niteliksiz bir başarı raporu olan 200'dür.
  • 3xx: Çağrı yönlendirme isteği tamamlanması için gereklidir. Talebin yeni bir hedef ile tamamlanması gerekir.
  • 4xx: Talep çeşitli hatalar nedeniyle gerçekleştirilemediğinde gelen cevaplardır.
  • 5xx: Sunucu üzerinde gerçekleşen hatalar için bu mesajlar gönderilir.
  • 6xx: Talep herhangi bir sunucuda yerine getirilemez. Hedef tarafından çağrı reddi de dahil olmak üzere genel bir başarısızlığı gösterir.

Ayrıca bakınız[değiştir | kaynağı değiştir]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ "IETF'de SIP Kaynakları". 31 Mayıs 2020 tarihinde kaynağından arşivlendi. 
  2. ^ "RFC 3261". 28 Nisan 2006 tarihinde kaynağından arşivlendi.