Skip to content

Commit c7f2ab9

Browse files
author
evgeny-nadymov
committed
Remove sessionId and media type
Fix media order for local sdp
1 parent 06c7f50 commit c7f2ab9

File tree

6 files changed

+36
-42
lines changed

6 files changed

+36
-42
lines changed

‎package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"homepage": "https://evgeny-nadymov.github.io/telegram-react",
33
"name": "telegram_react",
4-
"version": "0.0.977",
4+
"version": "0.0.978",
55
"private": true,
66
"dependencies": {
77
"tdweb": "^1.7.2",

‎src/Calls/P2P/ChromeP2PSdpBuilder.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ import { addDataChannel, addExtmap, addPayloadTypes, addSsrc } from './P2PSdpBui
99

1010
export class ChromeP2PSdpBuilder {
1111
static generateOffer(info) {
12-
const { sessionId, fingerprints, ufrag, pwd, audio, video } = info;
12+
const { fingerprints, ufrag, pwd, audio, video } = info;
13+
audio.type = 'audio';
14+
video.type = 'video';
1315
const media = [audio, video];
1416

1517
let sdp = `v=0
16-
o=- ${sessionId} 2 IN IP4 127.0.0.1
18+
o=- 1 2 IN IP4 127.0.0.1
1719
s=-
1820
t=0 0`;
1921
if (fingerprints) {
@@ -88,11 +90,13 @@ a=rtcp-rsize`;
8890
}
8991

9092
static generateAnswer(info) {
91-
const { sessionId, fingerprints, ufrag, pwd, audio, video } = info;
93+
const { fingerprints, ufrag, pwd, audio, video } = info;
94+
audio.type = 'audio';
95+
video.type = 'video';
9296
const media = [audio, video];
9397

9498
let sdp = `v=0
95-
o=- ${sessionId} 2 IN IP4 127.0.0.1
99+
o=- 1 2 IN IP4 127.0.0.1
96100
s=-
97101
t=0 0`;
98102
if (fingerprints) {

‎src/Calls/P2P/FirefoxP2PSdpBuilder.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ import { addDataChannel, addExtmap, addPayloadTypes, addSsrc } from './P2PSdpBui
99

1010
export class FirefoxP2PSdpBuilder {
1111
static generateOffer(info) {
12-
const { sessionId, fingerprints, ufrag, pwd, audio, video } = info;
12+
const { fingerprints, ufrag, pwd, audio, video } = info;
13+
audio.type = 'audio';
14+
video.type = 'video';
1315
const media = [audio, video];
1416

1517
let sdp = `v=0
16-
o=- ${sessionId} 0 IN IP4 0.0.0.0
18+
o=- 1 0 IN IP4 0.0.0.0
1719
s=-
1820
t=0 0`;
1921
if (fingerprints) {
@@ -78,11 +80,13 @@ a=rtcp-rsize`;
7880
}
7981

8082
static generateAnswer(info) {
81-
const { sessionId, fingerprints, ufrag, pwd, audio, video } = info;
83+
const { fingerprints, ufrag, pwd, audio, video } = info;
84+
audio.type = 'audio';
85+
video.type = 'video';
8286
const media = [audio, video];
8387

8488
let sdp = `v=0
85-
o=- ${sessionId} 0 IN IP4 0.0.0.0
89+
o=- 1 0 IN IP4 0.0.0.0
8690
s=-
8791
t=0 0`;
8892
if (fingerprints) {

‎src/Calls/P2P/P2PSdpBuilder.js

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -101,39 +101,20 @@ export function p2pParseSdp(sdp) {
101101

102102
return -1;
103103
};
104-
const findDirection = (lineFrom = 0, lineTo = Number.MAX_VALUE) => {
105-
if (lineTo === -1) {
106-
lineTo = Number.MAX_VALUE;
107-
}
108-
for (let i = lineFrom; i < lines.length && i < lineTo; i++) {
109-
const line = lines[i];
110-
if (line.startsWith('a=sendonly')) {
111-
return 'sendonly';
112-
} else if (line.startsWith('a=recvonly')) {
113-
return 'recvonly';
114-
} else if (line.startsWith('a=sendrecv')) {
115-
return 'sendrecv';
116-
} else if (line.startsWith('a=inactive')) {
117-
return 'inactive';
118-
}
119-
}
120-
121-
return '';
122-
}
123104

124105
const pwdIndex = findIndex('a=ice-pwd:');
125106
const ufragIndex = findIndex('a=ice-ufrag:');
126107
if (pwdIndex === -1 && ufragIndex === -1) {
127108
return {
128-
sessionId: lookup('o=').split(' ')[1],
109+
// sessionId: lookup('o=').split(' ')[1],
129110
ufrag: null,
130111
pwd: null,
131112
fingerprints: []
132113
};
133114
}
134115

135116
const info = {
136-
sessionId: lookup('o=').split(' ')[1],
117+
// sessionId: lookup('o=').split(' ')[1],
137118
ufrag: null,
138119
pwd: null,
139120
fingerprints: []
@@ -162,8 +143,9 @@ export function p2pParseSdp(sdp) {
162143

163144
const extmap = [];
164145
const types = [];
146+
const mediaType = lookup('m=', true, mediaIndex, nextMediaIndex).split(' ')[0];
165147
const media = {
166-
type: lookup('m=', true, mediaIndex, nextMediaIndex).split(' ')[0],
148+
// type: lookup('m=', true, mediaIndex, nextMediaIndex).split(' ')[0],
167149
// mid: lookup('a=mid:', true, mediaIndex, nextMediaIndex),
168150
// dir: findDirection(mediaIndex, nextMediaIndex),
169151
rtpExtensions: extmap,
@@ -225,10 +207,7 @@ export function p2pParseSdp(sdp) {
225207
}]
226208
}
227209

228-
switch (media.type) {
229-
case 'application': {
230-
break;
231-
}
210+
switch (mediaType) {
232211
case 'audio': {
233212
info.audio = media;
234213
break;

‎src/Calls/P2P/SafariP2PSdpBuilder.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,22 @@ import { addDataChannel, addExtmap, addPayloadTypes, addSsrc } from './P2PSdpBui
99

1010
export class SafariP2PSdpBuilder {
1111
static generateOffer(info) {
12-
const { sessionId, fingerprints, ufrag, pwd, audio, video } = info;
12+
const { fingerprints, ufrag, pwd, audio, video } = info;
13+
audio.type = 'audio';
14+
video.type = 'video';
1315
const media = [audio, video];
1416

1517
if (!media.length) {
1618
return `v=0
17-
o=- ${sessionId} 2 IN IP4 127.0.0.1
19+
o=- 1 2 IN IP4 127.0.0.1
1820
s=-
1921
t=0 0
2022
a=msid-semantic: WMS
2123
`;
2224
}
2325

2426
let sdp = `v=0
25-
o=- ${sessionId} 2 IN IP4 127.0.0.1
27+
o=- 1 2 IN IP4 127.0.0.1
2628
s=-
2729
t=0 0`;
2830
if (fingerprints) {
@@ -98,20 +100,22 @@ a=rtcp-rsize`;
98100
}
99101

100102
static generateAnswer(info) {
101-
const { sessionId, fingerprints, ufrag, pwd, audio, video } = info;
103+
const { fingerprints, ufrag, pwd, audio, video } = info;
104+
audio.type = 'audio';
105+
video.type = 'video';
102106
const media = [audio, video];
103107

104108
if (!media.length) {
105109
return `v=0
106-
o=- ${sessionId} 2 IN IP4 127.0.0.1
110+
o=- 1 2 IN IP4 127.0.0.1
107111
s=-
108112
t=0 0
109113
a=msid-semantic: WMS
110114
`;
111115
}
112116

113117
let sdp = `v=0
114-
o=- ${sessionId} 2 IN IP4 127.0.0.1
118+
o=- 1 2 IN IP4 127.0.0.1
115119
s=-
116120
t=0 0`;
117121
if (fingerprints) {

‎src/Stores/CallStore.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1858,7 +1858,10 @@ class CallStore extends EventEmitter {
18581858
const senders = connection.getSenders();
18591859
if (senders.some(x => x.track)) return;
18601860

1861-
inputStream && inputStream.getTracks().forEach(x => {
1861+
inputStream && inputStream.getAudioTracks().forEach(x => {
1862+
connection.addTrack(x, inputStream);
1863+
});
1864+
inputStream && inputStream.getVideoTracks().forEach(x => {
18621865
connection.addTrack(x, inputStream);
18631866
});
18641867
LOG_P2P_CALL('p2pAppendInputStream stop', inputStream);

0 commit comments

Comments
 (0)