# 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:
  - Kullanıcı konumunu belirlemek.
  - Bağlantıya katılacak kullanıcıları tespit etmek.
  - Uçların kapasitelerini tespit edip o şekilde medya parametrelerini ayarlamak.
  - Çağrı yapma ve iki uçtaki çağrı parametrelerini ayarlamak.
  - 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.
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ı.
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.
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ı.
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ı.
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.
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.


#### Cevaplar.
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.