SIP ile SDP kullanımı, SDP offer/answer RFC 3264’da verilmiştir. SIP’deki varsayılan mesaj gövdesi türü application / sdp’dir.
Arayan taraf SDP’de almak istedikleri medya özelliklerini genellikle bir INVITE veya bir ACK içinde 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, başlangıç noktası, konu, zaman, bağlantı ve bir veya daha fazla ortam ve özellik.
Konu ve zaman alanları SIP tarafından kullanılmaz, ancak uyumluluk için dahil edilir.
SDP standardında, konu alanı zorunlu bir alandır ve konu yoksa s = – olması önerilen en az bir karakter içermelidir.
Zaman alanı genellikle t = 00 olarak ayarlanır. SIP, UA’lar arasında oturumlar ayarlamak için bağlantı, medya ve nitelik alanlarını kullanır.
Başlangıç alanının SIP ile kullanımı sınırlıdır.
Oturum kimliği genellikle bir SIP oturumu boyunca sabit tutulur.
SDP her değiştiğinde sürüm artırılır. Gönderilen SDP daha önce gönderilen SDP ile aynı değilse, sürüm aynı kalır.
Kullanılacak medya oturumu ve codec bileşeni bağlantı anlaşmasının bir parçası olduğundan, SIP SDP’yi birden çok alternatif medya türü belirtmek ve bu medya türlerini seçici olarak kabul etmek veya reddetmek için kullanabilir.
Teklif / cevap belirtimi, RFC 3264, her ortam alanı için = rtpmap: içeren bir özniteliğin kullanılmasını önerir. SDP yanıtında karşılık gelen ortam alanı için bağlantı noktası numarası sıfıra ayarlanarak ortam akışı reddedilir.
Örnek
Aşağıdaki örnekte, arayan John, ilk INVITE içinde taşınan SDP’de iki olası ses codec bileşeni ve bir video codec bileşeni ile 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
Codec bileşenlerine RTP / AVP profil numaraları 97, 98 tarafından başvurulur.
Aranan taraf Marry aramayı cevaplar, ilk medya alanı için ikinci codec bileşenini seçer ve ikinci medya alanını reddeder, sadece AMR oturumu ister.
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 edilemezse, Tom aramayı iptal etmek için önce bir ACK sonra bir BYE gönderir. Aksi takdirde, ses oturumu oluşturulacak ve RTP paketleri değiştirilecektir.
Bu örnekte gösterildiği gibi, medya alanlarının sayısı ve sırası korunmadıkça, arayan taraf, aranan taraf tarafından hangi medya oturumlarının kabul edildiğini ve reddedildiğini kesin olarak bilemez.
Teklif / cevap kuralları aşağıdaki bölümlerde özetlenmiştir.
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.
Teklif Oluşturma Kuralları
Genellikle bir medya alanı içerir (m =) ancak zorunlu değildir. Ortam satırları, tercih sırasına göre listelenen tüm kodekleri içerir. Bunun tek istisnası, uç nokta çok sayıda codec’i destekliyorsa, en çok kabul edilecek veya en çok tercih edilenler listelenmelidir. Farklı ortam türleri arasında ses, video, metin, MSRP, BFCP vb. Yer alır.
Yanıt Oluşturma Kuralları
Bir teklife SDP yanıtı aşağıdaki kurallara göre oluşturulmalıdır –
Cevap, cevapla aynı sırayla aynı sayıda m = satırına sahip olmalıdır.
Bağlantı noktası numarası 0 olarak ayarlanarak ayrı medya akışları reddedilebilir.
Akışlar, sıfır olmayan bir bağlantı noktası numarası gönderilerek kabul edilir.
Her bir ortam türü için listelenen yükler, teklifte listelenen yüklerin bir alt kümesi olmalıdır.
Dinamik yükler için, her yönde aynı dinamik yük sayısının kullanılması gerekmez. Genellikle, sadece 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 değişimi başlatabilir. Bir oturum değiştirildiğinde, aşağıdaki kurallara uyulmalıdır.
Başlangıç noktası (o =) satır sürüm numarası, gönderilen SDP ile aynı olmalıdır; bu, bu SDP’nin önceki exchange ile aynı olduğunu veya ayrıştırılması gereken yeni SDP’yi gösteren bir artırılabilir.
Teklif, mevcut tüm medya hatlarını içermeli ve aynı sırada gönderilmelidir.
Ek ortam akışları m = satır listesinin sonuna eklenebilir.
Bağlantı noktası numarası 0 olarak ayarlanarak mevcut bir medya akışı silinebilir. Bu medya satırı SDP’de ve bu oturum için gelecekteki tüm teklif / cevap alışverişlerinde kalmalıdır.
Call Hold= Çağrı Bekletme
Bir görüşmedeki taraflardan biri diğerini geçici olarak beklemeye alabilir. Bu, orijinal INVITE ile aynı SDP’ye sahip ancak = sendonly özniteliği olan bir INVITE gönderilerek yapılır.
Çağrı, a = sendrecv özniteliği bulunan başka bir INVITE gönderilerek yeniden etkinleştirilir. Aşağıdaki şekilde bir çağrı bekletmenin çağrı akışı gösterilmektedir.