4. Eşler arası bağlantılar
4.2 Yapılandırma
4.2.1 RTCConfiguration Sözlüğü
RTCConfiguration, RTCPeerConnection aracılığıyla kurulan ya da yeniden kurulan eşler
arası iletişimin nasıl yapılandırılacağını belirlemek için kullanılan bir dizi parametreyi tanımlar.
WebIDLdictionary RTCConfiguration {
sequence<RTCIceServer> iceServers = [];
RTCIceTransportPolicy iceTransportPolicy = "all";
RTCBundlePolicy bundlePolicy = "balanced";
RTCRtcpMuxPolicy rtcpMuxPolicy = "require";
sequence<RTCCertificate> certificates = [];
[EnforceRange] octet iceCandidatePoolSize = 0;
};
RTCConfiguration Sözlüğü Üyeleri
iceServers · sequence<RTCIceServer> · varsayılan değeri [].
STUN ve TURN sunucuları gibi ICE tarafından kullanılabilecek sunucuları tanımlayan nesnelerden oluşan bir dizidir. ICE sunucularının sayısı, uygulamaya özgü olarak tanımlanan bir sınırı aşarsa, eşik üzerindeki ICE sunucuları yok sayılır. Bu uygulamaya özgü sınır en az 32 olmalıdır (MUST).
iceTransportPolicy · RTCIceTransportPolicy · varsayılan değeri "all"
ICE aracısının hangi adayları kullanmasına izin verildiğini belirtir.
bundlePolicy · RTCBundlePolicy · varsayılan değeri "balanced"
ICE adayları toplanırken hangi medya demetleme politikasının kullanılacağını belirtir.
rtcpMuxPolicy · RTCRtcpMuxPolicy · varsayılan değeri "require"
ICE adayları toplanırken hangi rtcp-mux politikasının kullanılacağını belirtir.
certificates · sequence<RTCCertificate> · varsayılan değeri [].
RTCPeerConnection tarafından kimlik doğrulama amacıyla kullanılan sertifika kümesidir.
Bu parametre için geçerli değerler, generateCertificate() işlevine
Herhangi bir DTLS bağlantısı yalnızca tek bir sertifika kullanacak olsa da, bu öznitelik
çağıranın farklı algoritmaları destekleyen birden fazla sertifika sağlamasına olanak tanır. Nihai sertifika, hangi
sertifikalara izin verildiğini belirleyen DTLS el sıkışması temelinde seçilir. Belirli bir bağlantı için hangi
sertifikanın kullanılacağını RTCPeerConnection uygulaması seçer; sertifikaların nasıl seçildiği bu
spesifikasyonun kapsamı dışındadır.
RTCPeerConnection örneği için varsayılan bir
sertifika kümesi üretilir.
Bu seçenek, uygulamaların anahtar sürekliliği sağlamasına olanak tanır. Bir
RTCCertificate, [INDEXEDDB] içinde kalıcı hale getirilebilir ve yeniden kullanılabilir. Kalıcılık ve
yeniden kullanım, anahtar üretme maliyetini de ortadan kaldırır.
Bu yapılandırma seçeneğinin değeri, ilk kez belirlendikten sonra değiştirilemez.
iceCandidatePoolSize · octet · varsayılan değeri 0
[RFC9429]’da tanımlandığı şekilde önceden getirilen ICE havuzunun boyutu (bölüm 3.5.4. ve bölüm 4.1.1.).
4.2.2 RTCIceServer Sözlüğü
RTCIceServer sözlüğü, ICE aracısının bir eşle bağlantı kurmak için kullanabileceği STUN ve TURN
sunucularını tanımlamak amacıyla kullanılır.
WebIDLdictionary RTCIceServer {
required (DOMString or sequence<DOMString>) urls;
DOMString username;
DOMString credential;
};
RTCIceServer Sözlüğü Üyeleri
urls · (DOMString veya sequence[RFC7064] ve [RFC7065]’te tanımlandığı şekilde STUN veya TURN URI(’leri) ya da diğer URI türleri.
username · DOMString
Bu RTCIceServer nesnesi bir TURN sunucusunu temsil ediyorsa, bu öznitelik o TURN sunucusu için
kullanılacak kullanıcı adını belirtir.
credential · DOMString
Bu RTCIceServer nesnesi bir TURN sunucusunu temsil ediyorsa, bu öznitelik o TURN sunucusu için
kullanılacak kimlik bilgisini belirtir.
| Enum değeri | Açıklama |
|---|
RTCIceTransportPolicy Numaralandırmasının açıklaması
4.2.4 RTCBundlePolicy Enum
[RFC9429]’da açıklandığı üzere (bölüm 4.1.1.), demetleme politikası, uzak uç noktanın demetleme farkındalığına sahip olmaması durumunda hangi medya izlerinin müzakere edileceğini ve hangi ICE adaylarının toplanacağını etkiler. Uzak uç nokta demetleme farkındalığına sahipse, tüm medya izleri ve veri kanalları aynı taşıma üzerine demetlenir.
WebIDLenum RTCBundlePolicy {
"balanced",
"max-compat",
"max-bundle"
};
| Enum değeri | Açıklama |
|---|
RTCBundlePolicy Numaralandırmasının açıklaması
4.2.5 RTCRtcpMuxPolicy Enum
[RFC9429]’da açıklandığı üzere (bölüm 4.1.1.),
RTCRtcpMuxPolicy, çoklanmamış RTCP’yi desteklemek için hangi ICE adaylarının toplanacağını etkiler.
Bu spesifikasyonda tanımlanan tek değer "require"’dır.
WebIDLenum RTCRtcpMuxPolicy {
"require"
};
| Enum değeri | Açıklama |
|---|
RTCRtcpMuxPolicy Numaralandırmasının açıklaması
4.2.6 Teklif/Cevap Seçenekleri
Bu sözlükler, teklif/cevap oluşturma sürecini kontrol etmek için kullanılabilecek seçenekleri tanımlar.
WebIDLdictionary RTCOfferAnswerOptions {};
RTCOfferAnswerOptions Sözlüğü Üyeleri
WebIDLdictionary RTCOfferOptions : RTCOfferAnswerOptions {
boolean iceRestart = false;
};
RTCOfferOptions Sözlüğü Üyeleri
iceRestart · boolean · varsayılan değeri false
Bu sözlük üyesinin değeri true olduğunda ya da ilgili RTCPeerConnection nesnesinin
[[LocalIceCredentialsToReplace]] yuvası boş olmadığında, üretilen tanım,
mevcut kimlik bilgilerinden farklı ICE kimlik bilgilerine sahip olur (currentLocalDescription
özniteliğinin SDP’sinde görüldüğü üzere). Üretilen tanımın uygulanması, [RFC5245]’in 9.1.1.1 bölümünde açıklandığı
şekilde ICE’i yeniden başlatır.
Bu sözlük üyesinin değeri false olduğunda ve ilgili RTCPeerConnection
[[LocalIceCredentialsToReplace]] yuvası boş olduğunda ve
currentLocalDescription özniteliği geçerli ICE kimlik bilgilerine sahip olduğunda, üretilen tanım
currentLocalDescription özniteliğindeki mevcut değerle aynı ICE kimlik bilgilerine sahip olur.
iceConnectionState durumu "failed" durumuna geçtiğinde ICE yeniden
başlatmasının yapılması önerilir. Bir uygulama ayrıca iceConnectionState durumunun
"disconnected" durumuna geçişini dinlemeyi ve ardından diğer bilgi kaynaklarını (örneğin,
getStats kullanarak sonraki birkaç saniye boyunca gönderilen veya alınan bayt sayısının artıp
artmadığını ölçmek gibi) kullanarak bir ICE yeniden başlatmasının uygun olup olmadığını belirlemeyi tercih
edebilir.
RTCAnswerOptions sözlüğü, türü "answer" olan oturum tanımına özgü seçenekleri açıklar
(bu spesifikasyonun bu sürümünde yoktur).
WebIDLdictionary RTCAnswerOptions : RTCOfferAnswerOptions {};