SIP - Mesajlaşma

SIP mesajları iki türdendir - requests ve responses.

  • Bir isteğ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ış satırı bir yanıt kodu içerir.

Talep Yöntemleri

SIP requestsiletişim kurmak için kullanılan kodlardır. Onları tamamlamak için varSIP responses genellikle bir isteğin başarılı olup olmadığını gösterir.

METHODS olarak bilinen bu SIP istekleri, SIP mesajını uygulanabilir hale getirir.

  • YÖNTEMLER, başka bir kullanıcı aracısı veya sunucusu tarafından belirli bir eylemin yapılmasını talep ettikleri için SIP istekleri olarak kabul edilebilir.

  • YÖNTEMLER iki türe ayrılır -

    • Temel Yöntemler

    • Uzatma Yöntemleri

Temel Yöntemler

Aşağıda tartışıldığı gibi altı temel yöntem vardır.

DAVET ET

INVITE, bir kullanıcı aracısı ile bir oturum başlatmak için kullanılır. Başka bir deyişle, kullanıcı aracıları arasında bir medya oturumu kurmak için bir DAVET yöntemi kullanılır.

  • DAVET, arayanın medya bilgilerini mesaj gövdesinde içerebilir.

  • Bir DAVET başarılı bir yanıt (2xx) almışsa veya bir ACK gönderilmişse, bir oturum kurulmuş kabul edilir.

  • Başarılı bir DAVET isteği, dialog Oturumu sonlandırmak için BYE gönderilene kadar devam eden iki kullanıcı aracısı arasında.

  • Oluşturulan bir iletişim kutusu içinde gönderilen bir DAVET, re-INVITE.

  • Yeniden DAVET, 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'ın 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

HOŞÇAKAL

BYE, kurulmuş bir oturumu sonlandırmak için kullanılan yöntemdir. Bu, arayan veya aranan uç 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 sunucusunu atlayarak uçtan uca yönlendirir.

  • BYE, bekleyen bir DAVETİYE veya kurulmamış bir oturuma gönderilemez.

KAYIT OL

REGISTER 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 alan adının yetkili bir kayıt operatörüne ulaşana kadar iletilebilir veya proxy yapılabilir.

  • AOR'yi (Kayıt Adresi) içinde taşır. To kayıtlı olan kullanıcının başlığı.

  • REGISTER isteği, zaman aralığını (3600sn) içerir.

  • Bir kullanıcı aracısı, başka bir kullanıcı aracısı adına bir REGISTER isteği gönderebilir. Bu olarak bilinirthird-party registration. BuradaFrom etiketi, içinde tanımlanan taraf adına kaydı gönderen tarafın URI'sini içerir. To başlık.

İPTAL ETMEK

CANCEL, kurulmamış bir oturumu sonlandırmak için kullanılır. Kullanıcı aracıları bu isteği, daha önce başlatılan bekleyen bir arama girişimini iptal etmek için kullanır.

  • Bir kullanıcı aracısı veya bir proxy sunucusu tarafından gönderilebilir.

  • CANCEL bir hop by hop istek, yani, kullanıcı aracısı arasındaki öğelerden geçer ve bir sonraki durum bilgisi olan öğe tarafından üretilen yanıtı alır.

ACK

ACK, bir INVITE yöntemine verilen son yanıtları onaylamak için kullanılır. Bir ACK her zaman INVITE.ACK yönünde gider, eğer INVITE'da mevcut değilse, SDP gövdesi (medya özellikleri) içerebilir.

  • ACK, ilk DAVETTE zaten gönderilmiş olan ortam açıklamasını değiştirmek için kullanılamaz.

  • Bir ACK alan durum bilgisi olan bir proxy, ACK'nın aşağı akışta başka bir proxy'ye veya kullanıcı aracısına yönlendirilip yönlendirilmeyeceğini belirlemelidir.

  • 2xx yanıtları için, ACK uçtan uca, ancak diğer tüm son yanıtlar için, durum bilgisi olan proxy'ler dahil olduğunda atlama temelinde çalışır.

SEÇENEKLER

SEÇENEKLER yöntemi, bir kullanıcı aracısını veya bir proxy sunucuyu yetenekleri hakkında sorgulamak ve mevcut kullanılabilirliğini keşfetmek için kullanılır. Bir isteğe verilen yanıt, kullanıcı aracısının veya sunucunun yeteneklerini listeler. Proxy hiçbir zaman OPTIONS isteği oluşturmaz.

Uzatma Yöntemleri

Abone ol

ABONE, kullanıcı aracıları tarafından belirli bir olay hakkında bildirim almak amacıyla bir abonelik oluşturmak için kullanılır.

  • İçerir Expires aboneliğin süresini gösteren başlık alanı.

  • Süre geçtikten sonra, abonelik otomatik olarak sona erecektir.

  • Abonelik, kullanıcı aracıları arasında bir diyalog oluşturur.

  • Son kullanma süresinden önce iletişim kutusu içinde başka bir ABONE göndererek yeniden abone olabilirsiniz.

  • Kullanıcıdan bir abonelik için 200 OK alınacaktır.

  • Kullanıcılar, Expires değeri 0 (sıfır) olan başka bir ABONE yöntemini göndererek abonelikten çıkabilir.

BİLDİR

NOTIFY, kullanıcı aracıları tarafından belirli bir olayın oluşumunu elde etmek için kullanılır. Abone ile bildirici arasında bir abonelik mevcut olduğunda genellikle bir iletişim kutusu içinde bir BİLDİRİM tetiklenir.

  • Her NOTIFY, bildirimci tarafından alınırsa 200 OK yanıtı alır.

  • BİLDİRİM şunları içerir: Event olayı belirten başlık alanı ve bir subscriptionstate aboneliğin mevcut durumunu gösteren başlık alanı.

  • Bir aboneliğin başlangıcında ve sona ermesinde her zaman bir BİLDİRİM gönderilir.

YAYINLA

PUBLISH, bir kullanıcı aracısı tarafından olay durumu bilgilerini bir sunucuya göndermek için kullanılır.

  • YAYINLA, çoğunlukla birden fazla olay bilgisi kaynağı olduğunda yararlıdır.

  • Bir PUBLISH talebi, bir iletişim kutusunda gönderilmemesi dışında NOTIFY'a benzer.

  • Bir PUBLISH talebi, bir Expires başlık alanı ve bir Min-Expires başlık alanı.

BAŞVUR

REFER, iletişim kutusu için bir URI'ye erişmek üzere başka bir kullanıcı aracısına başvurmak için bir kullanıcı aracısı tarafından kullanılır.

  • REFER, bir Refer-Tobaşlık. Bu, REFER için zorunlu bir başlıktır.

  • REFER bir iletişim kutusunun içinde veya dışında gönderilebilir.

  • Bir 202 Accepted diğer kullanıcı aracısının referansı kabul ettiğini gösteren bir KALDI isteğini tetikleyecektir.

BİLGİ

BİLGİ, bir kullanıcı aracısı tarafından, bir medya oturumu kurduğ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 taleptir.

  • Bir vekil her zaman bir BİLGİ talebi iletir.

GÜNCELLEME

GÜNCELLEME, bir oturum kurulmamışsa bir oturumun durumunu değiştirmek için kullanılır. Kullanıcı, kod çözücüyü UPDATE ile değiştirebilir.

Bir oturum kurulursa, oturumu değiştirmek / güncellemek için bir yeniden Davet kullanılır.

PRACK

PRACK, güvenilir bir geçici yanıt aktarımının (1XX) alındığını onaylamak için kullanılır.

  • Genel olarak PRACK, bir müşteri tarafından, aşağıdakileri içeren geçici bir yanıt aldığında oluşturulur. RSeq güvenilir sıra numarası ve a supported:100rel başlık.

  • PRACK, içinde (RSeq + CSeq) değerini içerir. rack başlık.

  • PRACK yöntemi, hiçbir zaman güvenilir bir şekilde taşınmayan 100 Çalışıyor yanıtı dışındaki tüm geçici yanıtlar için geçerlidir.

  • Bir PRACK, bir mesaj gövdesi içerebilir; teklif / cevap alışverişi için kullanılabilir.

İLETİ

SIP kullanarak anlık mesaj göndermek için kullanılır. Anlık ileti, genellikle metin sohbetine katılan katılımcılar tarafından gerçek zamanlı olarak değiştirilen kısa mesajlardan oluşur.

  • MESAJ bir iletişim kutusu içinde veya bir iletişim kutusu dışında gönderilebilir.

  • Bir MESAJIN içeriği, mesaj gövdesinde bir MIME ek dosya.

  • Bir 200 OK yanıt normalde mesajın hedefine teslim edildiğini belirtmek için alınır.