SIP MesajlarıSIP Mesajları

SIP, HTTP’ye oldukça benzeyen bir iletişim protokolüdür ve bu protokol içindeki SIP mesajları HTTP mesajlarına çok benzer. Aynı HTTP’de olduğu gibi SIP mesajları da 2,3,4,5 ve 6 rakamları ile başlayan 3 haneli kodlara sahiptirler. İsterseniz bu mesajların detaylı açıklamalarına geçmeden önce en çok karşılaşılan ve kullanılan SIP mesajlarını inceleyelim :

En Çok Kullanılan SIP Mesajları ve Anlamları

REGISTERTo başlığı alanında listelenen URI’yi bir SIP sunucusuna kaydetmek ve Contact başlığı alanında verilen ağ adresiyle ilişkilendirmek içindir.
INVITEArama yapmak için bir iletişim başlatır. İstek bir kullanıcı istemcisi (ör. IP telefon) tarafından bir SIP sunucusuna gönderilir. Hali hazırda kurulmuş bir iletişim sırasında gönderildiğinde (RE-INVITE), oturumu değiştirir (ör. çağrıyı beklemeye alma).
ACKBir INVITE isteğine son bir yanıt aldığını doğrulamak için kullanılır.
BYEBir iletişimin sonlandırıldığını bildirir ve çağrıyı bitirir.
CANCELBekleyen tüm istekleri iptal eder. Hala çalan bir çağrıyı cevaplamadan önce, sonlandırmak için kullanılır.
UPDATEİletişim durumunu değiştirmeden oturumun durumunu değiştirir
REFERAlıcıdan çağrıyı aktarmak amacıyla bir talepte bulunmasını ister.
PRACKGeçici onay. Geçici bir yanıta yanıt olarak gönderilir.
SUBSCRIBEBir bildirimden gelen olayların bildirilmesi için bir abonelik başlatır.
NOTIFYYeni bir etkinliğin bildirimlerini bir aboneye bildirmek için kullanılır.
PUBLISHBir etkinliği bildirim sunucusunda yayınlamak için kullanılır.
MESSAGEKısa mesaj gönderir. Anlık mesajlaşma uygulamalarında kullanılır.
INFOOturum durumunu değiştirmeyen oturum ortası bilgileri göndermek için kullanılır. Bu yöntem genellikle DTMF rölesi için kullanılır.
OPTIONSBir uç noktanın yeteneklerini sorgular. Genellikle NAT ve keepalive için kullanılır.

Bunların dışında diğer 3 haneli kodlara sahip SIP mesajlarını da aşağıda bulabilirsiniz:

1XX ile Başlayan SIP Mesajları

Bilgi içerikli yanıtlardır. Talebin geçerli olduğunu ve işleme alındığını bildirir. “Deniyor”, “Çalıyor” gibi geçici durumları bildirmek için kullanılır.

  • 100 Trying : INVITE mesajına karşılık olarak gönderilir. Hedefin nerede olduğunu bulmak biraz zaman alabilir, bu nedenle SIP proxy bu yanıtı gönderir.
  • 180 Ringing : Hedef kullanıcı aracısı (aranan numara) INVITE aldı ve telefonu çaldırıyor.
  • 181 Call Is Being Forwarded : Sunucular isteğe bağlı olarak bir çağrının yönlendirildiğini belirtmek için bu yanıtı gönderebilir.
  • 182 Queued : Hedefin geçici olarak kullanılamadığını gösterir, bu nedenle sunucu, hedef kullanılabilir olana kadar çağrıyı kuyruğa (beklemeye) almıştır. Bir sunucu kuyruğun ilerlemesini güncellemek adına birden fazla 182 yanıtı gönderebilir.
  • 183 Session Progress : Bu yanıt, halen kurulmakta olan bir çağrı için ek bilgi göndermek amacıyla kullanılır.
  • 199 Early Dialog Terminated : Bir User Agent Server tarafından, yukarı akıştaki SIP varlıklarına erken bir iletişimin sonlandırıldığını belirtmek için kullanılır.

2XX ile Başlayan SIP Mesajları

İsteğin başarıyla tamamlandığını belirtir. Bir INVITE mesajına cevap olarak, bir çağrının yapıldığını gösterir. Bir son başarı durumunu belirtir. En yaygın görülen kod 200 OK dir.

  • 200 OK : İsteğin başarılı olduğunu belirtir.
  • 202 Accepted : İsteğin işlenmek üzere kabul edildiğini, ancak işlemin tamamlanmadığını gösterir.
  • 204 No Notification : İsteğin başarılı olduğunu, ancak karşılığında bir yanıt alınmayacağını belirtir.

3XX ile Başlayan SIP Mesajları

İsteğin tamamlanması için çağrı yönlendirmesi gerekiyorsa bu kodlar kullanılır. Bu kodlar ile istek yeni bir hedefte tamamlanacak demektir. Ayrıca bir arıza durumunu belirtmek için de kullanılır, ancak kullanıcının yeni konumu veya aramayı cevaplayabilecek alternatif yerler hakkında bilgi de içerir. Bunlar telefonda “Tüm Çağrıları Yönlendir” veya “Rahatsız Etmeyin” gibi özellikler etkinleştirildiğinde IP telefonlar tarafından oluşturulan tipik yanıtlardır.

  • 300 Multiple Options : Adres, ileti gövdesinde veya iletinin Contact alanlarında listelenen kullanıcının veya istemcinin aralarından seçim yapabileceği çeşitli seçeneklerden birine çözümlendiğini belirtir.
  • 301 Moved Permanently : Orijinal istek URI’ın artık geçerli olmadığını belirtir ve yeni adresi Contact başlığı alanında verilr. İstemci orijinal istek URI kayıtlarını yeni değerle güncellemelidir.
  • 302 Moved Temporarily : İstek, Contact alanındaki adres ile tekrar denemelidir. Bir Expires alanı varsa, istemci sonucu bu süre boyunca önbelleğe alabilir.
  • 305 Use Proxy : Contact alanında istenen hedefe erişmek için kullanılması gereken bir proxy olduğunu belirtir.
  • 380 Alternative Service : Çağrının başarısız olduğunu, ancak mesaj gövdesinde alternatifler olduğunu belirtir.

4XX ile Başlayan SIP Mesajları

En kalabalık mesaj kod ailesidir. Gelen istek, sunucuda çeşitli nedenlerle tamamlanamıyor ise hata durumunu belirtmek için kullanılır, ancak bu mesajı üreten SIP Proxy’sinden kaynaklanan bir durumdur. Yani varsa diğer bazı SIP Proxy’lerin isteği başarıyla işleyebileceğini gösterir.

  • 400 Bad Request : İstek, hatalı biçimlendirilmiş sözdizimi nedeniyle anlaşılamadığında gönderilir.
  • 401 Unauthorized : İstek için kullanıcı kimlik doğrulaması gerektiğinde gönderilir. Bu yanıt UAS ve SIP registrar tarafından verilir.
  • 402 Payment Required: İlgili istek için ödeme yapılması gerektiğinde gönderilir. (gelecekte kullanılmak üzere ayrılmıştır)
  • 403 Forbidden : Sunucu isteği anladığında, ancak yerine getirmeyi reddettiğinde gönderilir. Bazen aramanın alıcı tarafından reddedildiği anlamına da gelebilir.
  • 404 Not Found : Sunucu, kullanıcının Request-URI’ında belirtilen etki alanında (domain) bulunmadığı durumda bu mesajı gönderir. Bu durum, Request URI’ındaki etki alanı, isteğin alıcısı tarafından işlenen etki alanlarından hiçbiriyle eşleşmezse de döndürülür.
  • 405 Method Not Allowed : Request-Line’da belirtilen metot anlaşıldığı ancak RequestURI’ı tarafından tanımlanan adres için izin verilmediği durumda gönderilir.
  • 406 Not Acceptable : İstekte gönderilen Accept header bilgisine göre göre kabul edilemeyen bir durum olduğunda gönderilir.
  • 407 Proxy Authentication Required : İstek için kullanıcı kimlik doğrulaması gerektiğinde gönderilir. Bu yanıt proxy’ler tarafından verilir.
  • 408 Request Timeout: İstekte belirtilen kullanıcı gerekli süre içerisinde bulunamadığında gönderilir. İstemci, istediği zaman değişiklik yapmadan isteği tekrarlayabilir.
  • 409 Conflict : Kullanıcı zaten kayıtlı olduğu durumda gönderilir.(sonraki RFC’lerden çıkarılması nedeniyle kullanımdan kaldırılmıştır.)
  • 410 Gone: Bir zamanlar var olan bu kullanıcının artık olmadığı durumda gönderilir.
  • 411 Length Required : Sunucu, geçerli bir Content-Length olmadan isteği kabul etmeyeceği durumda gönderilir. (sonraki RFC’lerden çıkarılması nedeniyle kullanımdan kaldırılmıştır.)
  • 412 Conditional Request Failed : Belirtilen ön koşul karşılanmadığı durumda gönderilir.
  • 413 Request Entity Too Large : İstek mesajının gövdesi çok büyük olduğu durumda gönderilir.
  • 414 Request URI Too Long : Request-URI’I, sunucunun yorumlayabildiğinden daha uzun olduğu durumda sunucunun bu hizmete hizmet vermeyi reddettiğini belirtmek için gönderilir.
  • 415 Unsupported Media Type : İstek mesajının gövdesi desteklenmeyen bir biçimde olduğunda gönderilir.
  • 416 Unsupported URL Scheme : İstek-URI’ı sunucu tarafından desteklenmediği durumda gönderilir.
  • 420 Bad Extension: Geçersiz SIP Protokol uzantısı kullanıldığında, sunucu tarafından anlaşılmadığında gönderilir.
  • 421 Extension Required : Sunucunun, Supported headerında listelenmeyen belirli bir uzantıya ihtiyacı olduğunda gönderilir.
  • 422 Session Interval Too Small : Alınan istek, minimum timer değerinin altında bir süreye sahip bir Session-Expires header alanı içerdiğinde gönderilir.
  • 423 Interval Too Brief : Kaynağın Expiration süresi çok kısa olduğunda gönderilir.
  • 424 Bad Location Information : İsteğin konum içeriği yanlış biçimlendirilmiş veya başka şekilde yetersiz olduğu durumda gönderilir.
  • 428 Use Identity Header : Sunucu yapılandırması bir Identity header üstbilgisi gerektirdiğinde ve istekte bu değer sağlanmadığında gönderilir.
  • 429 Provide Referrer Identity : Sunucu, istek üzerine geçerli bir Referred-By token ı almadığında gönderilir.
  • 430 Flow Failed : Diğer akışlar başarılı iken, bir kullanıcı aracısının belirli bir akışı başarısız olduğunda gönderilir. Bu yanıt proxy cihazları arasında kullanılmak üzere tasarlanmıştır ve uç cihaz tarafında görülmemelidir (eğer tarafından görülüyorsa 400 Bad Request olarak değerlendirilmelidir).
  • 433 Anonymity Disallowed : İsteğin anonim olduğu için reddedildiğini belirtir.
  • 436 Bad Identity-Info : İsteğin bir Identity-Info headerının olduğu ve bu headerdaki URI şeması kaydının anlaşılmadığı durumda gönderilir.
  • 437 Unsupported Certificate : Sunucunun, isteği imzalayan etki alanı için bir sertifikayı doğrulayamadığı durumda gönderilir.
  • 438 Invalid Identity Header : Sunucunun, talebin imzalanması için talepe ait geçerli bir sertifikaya sahip olduğu ancak ancak bu imzayı doğrulayamadığı durumda gönderilir.
  • 439 First Hop Lacks Outbound Support : Kullanıcının kaydolmaya çalıştığı ilk outbound proxynin, registrarın desteklemesine rağmen RFC 5626’nın “outbound” özelliğini desteklemediği durumda gönderilir.
  • 440 Max-Breadth Exceeded : Bir SIP proxy’si bir yanıt contextinin istenen bir paralel fork yürütmek için yetersiz Incoming Max-Breadth değerine sahip olduğunu belirlerse ve proxy, seri olarak çatallayarak veya bir yönlendirme göndererek telafi etmek istemez veya telafi edemezse, bu proxynin 440 yanıtı göndermesi gerekir. 440 yanıtını alan bir istemci, isteğinin olası tüm hedeflere ulaşamamasına neden olabilir.
  • 469 Bad Info Package : If a SIP UA receives an INFO request associated with an Info Package that the UA has not indicated willingness to receive, the UA MUST send a 469 response, which contains a Recv-Info header field with Info Packages for which the UA is willing to receive INFO requests.
  • 470 Consent Needed : Talebin kaynağının alıcı için böyle bir talepte bulunma izni olmadığı durumda gönderilir.
  • 480 Temporarily Unavailable : Aranan numaraya geçici olarak ulaşılamadığında bu mesaj gönderilir.
  • 481 Call/Transaction Does Not Exist : Sunucunun, isteği hiçbir iletişim kutusu veya işlemle eşleştiremediği bir istek aldığında gönderilir.
  • 482 Loop Detected : Sunucu bir döngü (loop) tespit ettiğinde gönderilir.
  • 483 Too Many Hops : Çağrı yönlendirilirken çok fazla hop üzerinden geçtiğinde (Max-Forward headerı ‘0’ değerine ulaştığında) gönderilir.
  • 484 Address Incomplete : Request-URI header ı eksik ise gönderilir.
  • 485 Ambigious : Request-URI header ı belirsiz ise gönderilir.
  • 486 Busy Here : Aranan numara meşgulse gönderilir.
  • 487 Request Terminated : İstek BYE veya CANCEL ile sonlandırıldığında gönderilir.
  • 488 Not Acceptable Here : Session Description veya Request-URI parametreleri kabul edilmediğinde gönderilir.
  • 489 Bad Event : Sunucu Event headerındaki bir olay paketini anlamadığı durumda gönderilir.
  • 491 Request Pending : Sunucunun aynı iletişim kutusundan beklemede olan başka istekleri olduğunda gönderilir.
  • 493 Undecipherable: Sunucunun gelen istekteki MIME gövdesinin şifresini çözemediği durumda gönderilir.
  • 494 Security Agreement Required : Sunucu, anlaşmalı bir güvenlik mekanizması gerektiren bir istek aldığında ve yanıtın, istekte bulunanın seçebileceği uygun güvenlik mekanizmalarının listesini veya digest authentication sorununu içerdiğinde gönderilir.

5XX ile Başlayan SIP Mesajları

Sunucu, sunucu iç hataları da dahil olmak üzere, geçerli bir isteği yerine getiremediğinde alınan mesajlardır. PBX sunucusunun bir iç hatayla karşılaştığını belirtmek için kullanılır.

  • 500 Internal Server Error : Sunucu beklenmedik bir durum nedeniyle isteği yerine getiremediğinde gönderilir.
  • 501 Not Implemented : Sunucu, istek yöntemini tanımadığı için isteği yerine getirme yeteneğine sahip değil ise bu mesajı gönderir.
  • 502 Bad Gateway : Sunucu, ağ geçidi veya proxy gibi davranıyor ve isteği yerine getirmeye çalışırken bir alt sunucudan geçersiz bir yanıt aldıysa bu mesajı gönderebilir.
  • 503 Service Unavailable : Sunucu bakımda veya geçici olarak aşırı yüklenmiş ve bu nedenle isteği işleyemiyor ise bu mesajı gönderir. Sunuu Retry-After headerı ile istemcinin isteğini ne zaman tekrar deneyebileceğini belirtebilir.
  • 504 Server Timeout : Sunucu, isteği işleme koymaya çalışırken başka bir sunucuya erişmeye çalıştı ve bir yanıt almadıysa bu mesajı gönderir.
  • 505 Version Not Supported : Sunucu, SIP protokolünün bu sürümünü desteklemiyor ise bu mesajı gönderir.
  • 513 Message Too Large : Sunucu istek mesajının uzunluğu sunucunun işleyebileceğinden daha uzun ise bu mesajı gönderir.
  • 555 Push Notification Service Not Supported : Sunucu, bir ‘pn provider’ SIP URI parametresinde tanımlanan push bildirim hizmetini desteklemiyorsa bu mesajı gönderir.
  • 580 Precondition Failure : Sunucu teklifte belirtilen bazı kısıtlamaları karşılamak için yetersiz veya isteksiz olduğunda bu mesajı gönderir

6XX ile Başlayan SIP Mesajları

Hedef tarafından çağrının reddedilmesi de dahil olmak üzere genel bir hata olduğunu belirtir. Final bir hata durumunu belirtmek ve bu durumun genel nitelikte olduğunu belirtmek için kullanılır ve bu isteğin hiçbir durumda başka bir SIP Proxy’si tarafından ele alınamayacağını gösterir.

  • 600 Busy Everywhere : Tüm olası yerler meşgul. 486 yanıtından farklı olarak, bu yanıt, hedefin çağrıyı kabul edebilecek alternatif hedeflerin (sesli posta sunucusu gibi) olmadığını bildiğini gösterir.
  • 603 Decline : Hedef aramaya katılmak istemez veya aramayı gerçekleştireme ve ayrıca hedef, aramayı kabul etmek isteyen alternatif hedeflerin (sesli posta sunucusu gibi) olmadığını bildiği zaman bu mesajı gönderir. Yanıt içinde Retry-After header alanında daha iyi bir arama belirtilir.
  • 604 Does Not Exist Anywhere : Sunucu, istenen kullanıcının hiçbir yerde bulunmadığını biliyorsa bu mesajı gönderir.
  • 606 Not Acceptable : Kullanıcının aracısıyla başarılı bir şekilde iletişim kurulduğunnu, ancak oturum açıklamasının istenen medya, bant genişliği veya adresleme stili gibi bazı değerlerin kabul edilemez olduğunu belirtir.
  • 607 Unwanted : Aranan taraf arayan tarafın bu çağrısını istemiyor ise bu mesaj gönderilir. Arayan tarafın gelecekteki girişimlerinin de benzer şekilde reddedilmesi muhtemeldir.
  • 608 Rejected : Bir aracı makine veya süreç çağrı girişimini reddettiğinde bu mesaj iletilir. Bu, aranan tarafın çağrıyı reddettiği 607 (Unwanted) SIP yanıt kodundan farklıdır. Yanıt, Call-Info headerında bulunan çağrıyı engelleyen kişi bilgilerini içerebilir.