← WebRTC 1.0 Spesifikasyonu

Eşler Arası Bağlantılar

W3C WebRTC 1.0 Spesifikasyonu — Türkçe Çeviri

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

yapılan çağrılar yoluyla elde edilir.

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.

Mevcut uygulamalar yalnızca sağlanan ilk sertifikayı kullanır; diğerleri yok sayılır. Bu değer mevcut değilse, her bir 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) · zorunlu

[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

nesnesinin [[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 {};