SIP mesajları iki türdür – istek ve yanıtlar.
İsteğin açılış satırı, isteği tanımlayan bir yöntem ve isteğin nereye gönderileceğini tanımlayan bir Request-URI içerir.
Benzer şekilde, bir yanıtın açılış çizgisi bir yanıt kodu içerir.
Request Methods
SIP istekleri, iletişim kurmak için kullanılan kodlardır. Bunları tamamlamak için, genellikle bir isteğin başarılı veya başarısız olduğunu belirten SIP yanıtları vardır.
Methods, olarak bilinen bu SIP istekleri SIP mesajını çalışılabilir hale getirir.
Methods, başka bir kullanıcı aracısı veya sunucusu tarafından belirli bir eylemin gerçekleştirilmesini istedikleri için SIP istekleri olarak kabul edilebilir.
Methods iki türe ayrılır –
—Core Methods
—Extension Methods
*** CORE METHODS
Aşağıda tartışıldığı gibi altı temel yöntem vardır.
INVITE
INVITE, bir kullanıcı aracısıyla oturum başlatmak için kullanılır. Başka bir deyişle, kullanıcı aracıları arasında bir medya oturumu oluşturmak için bir INVITE yöntemi kullanılır.
INVITE arayanın medya bilgisini mesaj gövdesinde içerebilir.
Bir INVITE başarı yanıtı (2xx) aldıysa veya bir ACK gönderildiyse bir oturum oluşturulmuş sayılır.
Başarılı bir INVITE isteği, iki kullanıcı aracısı arasında oturumu sonlandırmak için bir BYE gönderilinceye kadar devam eden bir iletişim kutusu oluşturur.
Oluşturulmuş bir iletişim kutusunda gönderilen bir INVITE, re-invite olarak bilinir.
Re-invite, oturum özelliklerini değiştirmek veya bir iletişim kutusunun durumunu yenilemek için kullanılır.
INVITE Örneği
Aşağıdaki kod INVITE’in nasıl kullanıldığını gösterir.
INVITE sips:[email protected] SIP/2.0
Via: SIP/2.0/TLS client.ANC.com:5061;branch = z9hG4bK74bf9
Max-Forwards: 70
From: Alice<sips:[email protected]>;tag = 1234567
To: Bob<sips:[email protected]>
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sips:[email protected]>
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: ...
v = 0
o = Alice 2890844526 2890844526 IN IP4 client.ANC.com
s = Session SDP
c = IN IP4 client.ANC.com
t = 3034423619 0
m = audio 49170 RTP/AVP 0
a = rtpmap:0 PCMU/8000
BYE
BYE, oturumu sonlandırmak için kullanılan yöntemdir. Bu, arayan veya arayan kişi tarafından bir oturumu sonlandırmak için gönderilebilen bir SIP isteğidir.
Proxy sunucusu tarafından gönderilemez.
BYE isteği normalde proxy sunucuyu atlayarak uçtan uca yönlendirir.
Bekleyen bir INVITE veya kurulmamış bir oturuma BYE gönderilemez.
REGISTER
KAYIT isteği, bir kullanıcı aracısının kaydını gerçekleştirir. Bu istek bir kullanıcı aracısı tarafından bir kayıt şirketi sunucusuna gönderilir.
REGISTER isteği belirtilen etki alanının yetkili bir kayıt kuruluşuna ulaşıncaya kadar iletilebilir veya proxy gönderilebilir.
AOR (Kayıt Adresi) kaydedilmekte olan kullanıcının Kime başlığında taşır.
REGISTER isteği süreyi (3600sn) içerir.
Bir kullanıcı aracısı başka bir kullanıcı aracısı adına bir REGISTER isteği gönderebilir. Bu, üçüncü taraf kaydı olarak bilinir. Burada, Kimden etiketi, Kime başlığında belirtilen taraf adına kaydı gönderen tarafın URI’sini içerir.
CANCEL
CANCEL oluşturulmayan bir oturumu sonlandırmak için kullanılır. Kullanıcı aracıları bu isteği daha önce başlatılan bekleyen bir çağrı girişimini iptal etmek için kullanır.
Bir kullanıcı aracısı veya bir proxy sunucusu tarafından gönderilebilir.
CANCEL bir sekme atlama isteğidir, yani kullanıcı aracısı arasındaki öğelerden geçer ve bir sonraki durumlu öğenin ürettiği yanıtı alır.
ACK
ACK, bir INVITE yöntemine verilen son yanıtları kabul etmek için kullanılır. ACK her zaman INVITE yönünde gider. INVITE içinde yoksa, SDP gövdesi (ortam özellikleri) içerebilir.
ACK, ilk INVITE sitesinde daha önce gönderilmiş olan medya açıklamasını değiştirmek için kullanılamaz.
A stateful proxy receiving an ACK must determine whether or not the ACK should be forwarded downstream to another proxy or user agent.
For 2xx responses, ACK is end to end, but for all other final responses, it works on hop by hop basis when stateful proxies are involved.
OPTIONS
OPTIONS yöntemi, bir kullanıcı aracısını veya proxy sunucusunu yetenekleri hakkında sorgulamak ve geçerli kullanılabilirliğini keşfetmek için kullanılır. Bir isteğe yanıt, kullanıcı aracısının veya sunucunun yeteneklerini listeler. Proxy hiçbir zaman OPTIONS isteği oluşturmaz.
*** EXTENSION METHODS
SUBSCRIBE
Subscribe, kullanıcı aracıları tarafından belirli bir olay hakkında bildirim almak amacıyla bir abonelik oluşturmak için kullanılır.
Subscribe süresini gösteren bir Expires üstbilgisi alanı içerir.
Süre geçtikten sonra abonelik otomatik olarak sona erer.
Subscribe, kullanıcı aracıları arasında bir iletişim kutusu oluşturur.
Son kullanma tarihinden önce iletişim kutusunda başka bir Subscribe göndererek tekrar abone olabilirsiniz.
Kullanıcıdan bir abonelik için 200 OK alınır.
Kullanıcılar, Sona erme değeri 0 (sıfır) olan başka bir SUBSCRIBE yöntemi göndererek aboneliği iptal edebilir.
NOTIFY
NOTIFY, belirli bir olayın gerçekleşmesini sağlamak için kullanıcı aracıları tarafından kullanılır. Aboneyle bildirim yapan arasında bir abonelik olduğunda genellikle bir NOTIFY iletişim kutusu içinde tetiklenir.
Bildirim yapan kişi tarafından alınırsa, her NOTIFY 200 OK yanıtı alır.
NOTIFY, olayı gösteren bir Olay başlığı alanı ve aboneliğin mevcut durumunu gösteren bir abonelik durumu başlık alanı içerir.
Bir aboneliğin başlangıcında ve sonlandırılmasında daima bir BİLDİRİM gönderilir.
PUBLISH
PUBLISH is used by a user agent to send event state information to a server.
PUBLISH is mostly useful when there are multiple sources of event information.
A PUBLISH request is similar to a NOTIFY, except that it is not sent in a dialog.
A PUBLISH request must contain an Expires header field and a Min-Expires header field
REFER
REFER, bir kullanıcı aracısı tarafından iletişim kutusu için bir URI’ye erişmek üzere başka bir kullanıcı aracısına başvurmak için kullanılır.
REFER, bir Refer-To başlığı içermelidir. Bu, REFER için zorunlu bir başlıktır.
REFER bir iletişim kutusunun içinde veya dışında gönderilebilir.
202 Kabul edildi, diğer kullanıcı aracısının başvuruyu kabul ettiğini gösteren bir REFER isteği tetikleyecektir.
INFO
INFO, bir kullanıcı aracısı tarafından, bir medya oturumu oluşturduğu başka bir kullanıcı aracısına çağrı sinyalleme bilgisi göndermek için kullanılır.
Bu uçtan uca bir istektir. Bir proxy her zaman bir INFO isteği iletir.
UPDATE
UPDATE, bir oturum oluşturulmamışsa oturumun durumunu değiştirmek için kullanılır. Kullanıcı UPDATE ile kodek değiştirebilir.
PRACK
PRACK, geçici yanıtın (1XX) güvenilir bir şekilde aktarıldığını kabul etmek için kullanılır.
Genellikle PRACK, bir RSeq güvenilir sıra numarası ve desteklenen bir 100rel üstbilgisi içeren geçici bir yanıt aldığında bir istemci tarafından üretilir.
PRACK raf başlığında (RSeq + CSeq) değeri içerir.
PRACK yöntemi, asla güvenilir bir şekilde aktarılmayan 100 Deneme yanıtı dışındaki tüm geçici yanıtlar için geçerlidir.
PRACK bir mesaj gövdesi içerebilir; teklif / cevap değişimi için kullanılabilir.
MESSAGE
SIP kullanarak anlık mesaj göndermek için kullanılır. Anlık mesajlaşma genellikle kısa mesajla ilgilenen katılımcılar tarafından gerçek zamanlı olarak değiştirilen kısa mesajlardan oluşur.
MESSAGE bir diyalog içinde veya diyalog dışında gönderilebilir.
Bir MESAJ içeriği, mesaj gövdesinde bir MIME eki olarak taşınır.
İletinin hedefine teslim edildiğini göstermek için normal olarak 200 OK yanıtı alınır.