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