Парсинг SDP в WebRTC
У меня есть HTML + Javascript код, который имитирует видеозвонок webrtc между мной и мной (я выступаю в качестве первого и второго партнера).
Я хотел бы идентифицировать и показывать только на консоли a=fingerprint
Атрибут SDP. В JavaScript, я могу это сделать? Я могу сделать это после peerconnection.createOffer()
обратное предложение.
2 ответа
SDP - это линейно-ориентированный формат, поэтому вы должны разбить его на строки, а затем найти тот, который начинается с "a=fingerprint:", а затем разбить его на его компоненты (которые являются алгоритмом хеширования и самим отпечатком). Вот так (требуется Chrome 56+ или Firefox):
var pc = new RTCPeerConnection();
pc.createOffer({offerToReceiveAudio: 1})
.then(function (offer) {
let lines = offer.sdp.split('\n')
.map(l => l.trim()); // split and remove trailing CR
lines.forEach(function(line) {
if (line.indexOf('a=fingerprint:') === 0) {
let parts = line.substr(14).split(' ');
console.log('algorithm', parts[0]);
console.log('fingerprint', parts[1]);
}
})
})
SDP (протокол описания сеанса) необходимо разделить для визуализации. Вы можете разобрать SDP здесь https://wrtc.dev/sdp-transform/index.html.