SIP - Teklif / Cevap Modeli

SDP'nin SIP ile kullanımı, SDP teklif yanıtı RFC 3264'te verilmiştir. SIP'deki varsayılan mesaj gövde tipi şu şekildedir: application/sdp.

  • Çağıran taraf, SDP'de almaya istekli oldukları medya yeteneklerini, genellikle bir DAVET veya bir ACK'da listeler.

  • Aranan taraf, medya yeteneklerini DAVET'e 200 OK yanıtında listeler.

SDP'nin tipik bir SIP kullanımı şu alanları içerir: sürüm, kaynak, konu, zaman, bağlantı ve bir veya daha fazla ortam ve öznitelik.

  • Konu ve zaman alanları SIP tarafından kullanılmaz ancak uyumluluk için dahil edilmiştir.

  • SDP standardında, konu alanı zorunlu bir alandır ve en az bir karakter içermelidir, eğer konu yoksa s = - olması önerilir.

  • Zaman alanı genellikle t = 00 olarak ayarlanır. SIP, kullanıcı arayüzleri arasındaki oturumları ayarlamak için bağlantı, ortam ve öznitelik alanlarını kullanır.

  • Menşe alanının SIP ile sınırlı kullanımı vardır.

  • Oturum kimliği genellikle bir SIP oturumu boyunca sabit tutulur.

  • SDP her değiştirildiğinde sürüm artırılır. Gönderilen SDP, daha önce gönderilen SDP ile değiştirilmezse, sürüm aynı tutulur.

  • Kullanılacak ortam oturumu ve kodek türü bağlantı görüşmesinin bir parçası olduğundan, SIP birden çok alternatif ortam türü belirtmek ve bu ortam türlerini seçmeli olarak kabul etmek veya reddetmek için SDP'yi kullanabilir.

Teklif / yanıt özelliği, RFC 3264, her ortam alanı için a = rtpmap: içeren bir özniteliğin kullanılmasını önerir. Bir medya akışı, SDP yanıtındaki ilgili medya alanı için port numarası sıfır olarak ayarlanarak reddedilir.

Misal

Aşağıdaki örnekte, arayan Tesla, ilk DAVETİYE'de taşınan SDP'de iki olası ses codec'i ve bir video codec'i içeren bir sesli ve görüntülü arama ayarlamak istiyor -

v = 0 
o = John 0844526 2890844526 IN IP4 172.22.1.102  
s = - 
c = IN IP4 172.22.1.102 
t = 0 0 
m = audio 6000 RTP/AVP 97 98 
a = rtpmap:97 AMR/16000/1 
a = rtpmap:98 AMR-WB/8000/1 
m = video 49172 RTP/AVP 32 
a = rtpmap:32 MPV/90000

Kodekler, RTP / AVP profil numaraları 97, 98 ile belirtilir.

Aranan taraf Marry, aramayı yanıtlar, birinci ortam alanı için ikinci codec'i seçer ve yalnızca AMR oturumu isteyerek ikinci ortam alanını reddeder.

v = 0 
o = Marry 2890844526 2890844526 IN IP4 172.22.1.110 
s = - 
c = IN IP4 200.201.202.203 
t = 0 0 
m = audio 60000 RTP/AVP 8 
a = rtpmap:97 AMR/16000 
m = video 0 RTP/AVP 32

Bu yalnızca sesli arama kabul edilebilir değilse, Tom aramayı iptal etmek için bir ACK ve ardından bir BYE gönderir. Aksi takdirde, ses oturumu kurulur ve RTP paketleri değiş tokuş edilir.

Bu örnekte gösterildiği gibi, medya alanlarının sayısı ve sırası korunmadıkça, arayan taraf hangi medya oturumlarının aranan taraf tarafından kabul edildiğini ve reddedildiğini kesin olarak bilemez.

Teklif / cevap kuralları aşağıdaki bölümlerde özetlenmiştir.

Teklif Oluşturma Kuralları

Bir SDP teklifi, gerekli tüm SDP alanlarını içermelidir (buna v =, o =, s =, c = ve t = dahildir). Bunlar, SDP'deki zorunlu alanlardır.

Genellikle bir ortam alanı ( m = ) içerir, ancak zorunlu değildir. Medya satırları, tercih sırasına göre listelenen tüm kodekleri içerir. Bunun tek istisnası, uç noktanın çok sayıda codec'i destekliyorsa, kabul edilmesi en muhtemel veya en çok tercih edileninin listelenmesi gerektiğidir. Farklı medya türleri arasında ses, video, metin, MSRP, BFCP ve benzeri yer alır.

Cevap Oluşturma Kuralları

Bir teklife bir SDP yanıtı aşağıdaki kurallara göre oluşturulmalıdır -

  • Cevap, cevapla aynı sırada aynı sayıda m = satırına sahip olmalıdır .

  • Tek tek ortam akışları, bağlantı noktası numarası 0 olarak ayarlanarak reddedilebilir.

  • Sıfır olmayan bir bağlantı noktası numarası gönderilerek akışlar kabul edilir.

  • Her ortam türü için listelenen yükler, teklifte listelenen yüklerin bir alt kümesi olmalıdır.

  • Dinamik faydalı yükler için, her yönde aynı dinamik faydalı yük numarasının kullanılması gerekmez. Genellikle, yalnızca tek bir yük seçilir.

Bir Oturumu Değiştirme Kuralları

Her iki taraf da bir oturumu değiştirmek için başka bir teklif / cevap alışverişi başlatabilir. Bir oturum değiştirildiğinde, aşağıdaki kurallara uyulmalıdır -

  • Orijin ( o = ) satır versiyon numarası ya son gönderilen ile aynı olmalıdır, bu da bu SDP'nin önceki değişim ile aynı olduğunu gösterir ya da ayrıştırılması gereken yeni SDP'yi belirten biri kadar artırılabilir.

  • Teklif mevcut tüm medya hatlarını içermeli ve aynı sırayla gönderilmelidir.

  • M = line listesinin sonuna ek ortam akışları eklenebilir .

  • Port numarası 0 olarak ayarlanarak mevcut bir medya akışı silinebilir. Bu medya hattı SDP'de ve bu oturum için gelecekteki tüm teklif / cevap alışverişlerinde kalmalıdır.

Çağrı Bekletme

Bir görüşmedeki taraflardan biri diğerini geçici olarak beklemeye alabilir. Bu, orijinal DAVETİYE ile aynı SDP'ye sahip bir DAVET göndererek yapılır, ancaka = sendonly mevcut öznitelik.

Çağrı, başka bir DAVETİYE gönderilerek tekrar aktif hale getirilir. a = sendrecvmevcut öznitelik. Aşağıdaki çizim, bir çağrı bekletmenin çağrı akışını gösterir.