blob: 51a236b519cacf8a1a6b9536984a51837652487c [file] [log] [blame]
Neels Hofmeyreef45782019-10-21 03:24:04 +02001
2
3test_parse_and_compose
4
5[0]
6sdp input: v=0\r\n
7sdp input: o=- 5628250 5628250 IN IP4 192.168.11.121\r\n
8sdp input: s=-\r\n
9sdp input: c=IN IP4 192.168.11.121\r\n
10sdp input: t=0 0\r\n
11sdp input: m=audio 10020 RTP/AVP 18 0 2 4 8 96 97 98 100 101\r\n
12sdp input: a=rtpmap:18 G729/8000\r\n
13sdp input: a=rtpmap:0 PCMU/8000\r\n
14sdp input: a=rtpmap:2 G726-32/8000\r\n
15sdp input: a=rtpmap:4 G723/8000\r\n
16sdp input: a=rtpmap:8 PCMA/8000\r\n
17sdp input: a=rtpmap:96 G726-40/8000\r\n
18sdp input: a=rtpmap:97 G726-24/8000\r\n
19sdp input: a=rtpmap:98 G726-16/8000\r\n
20sdp input: a=rtpmap:100 NSE/8000\r\n
21sdp input: a=fmtp:100 192-193\r\n
22sdp input: a=rtpmap:101 telephone-event/8000\r\n
23sdp input: a=fmtp:101 0-15\r\n
24sdp input: a=ptime:20\r\n
25sdp input: a=sendrecv\r\n
Neels Hofmeyr9a515e52022-01-13 20:40:12 +010026sdp_msg_to_sdp_str_buf: v=0\r\n
27sdp_msg_to_sdp_str_buf: o=OsmoMSC 0 0 IN IP4 192.168.11.121\r\n
28sdp_msg_to_sdp_str_buf: s=GSM Call\r\n
29sdp_msg_to_sdp_str_buf: c=IN IP4 192.168.11.121\r\n
30sdp_msg_to_sdp_str_buf: t=0 0\r\n
31sdp_msg_to_sdp_str_buf: m=audio 10020 RTP/AVP 18 0 2 4 8 96 97 98 100 101\r\n
32sdp_msg_to_sdp_str_buf: a=rtpmap:18 G729/8000\r\n
33sdp_msg_to_sdp_str_buf: a=rtpmap:0 PCMU/8000\r\n
34sdp_msg_to_sdp_str_buf: a=rtpmap:2 G726-32/8000\r\n
35sdp_msg_to_sdp_str_buf: a=rtpmap:4 G723/8000\r\n
36sdp_msg_to_sdp_str_buf: a=rtpmap:8 PCMA/8000\r\n
37sdp_msg_to_sdp_str_buf: a=rtpmap:96 G726-40/8000\r\n
38sdp_msg_to_sdp_str_buf: a=rtpmap:97 G726-24/8000\r\n
39sdp_msg_to_sdp_str_buf: a=rtpmap:98 G726-16/8000\r\n
40sdp_msg_to_sdp_str_buf: a=rtpmap:100 NSE/8000\r\n
41sdp_msg_to_sdp_str_buf: a=fmtp:100 192-193\r\n
42sdp_msg_to_sdp_str_buf: a=rtpmap:101 telephone-event/8000\r\n
43sdp_msg_to_sdp_str_buf: a=fmtp:101 0-15\r\n
44sdp_msg_to_sdp_str_buf: a=ptime:20\r\n
Neels Hofmeyr01431082022-07-19 12:16:02 +020045sdp_msg_to_sdp_str_buf: a=sendrecv\r\n
Neels Hofmeyreef45782019-10-21 03:24:04 +020046[0] ok
47
48[1]
49sdp input: v=0\r\n
50sdp input: o=FooBar 1565090289 1565090290 IN IP4 192.168.11.151\r\n
51sdp input: s=FooBar\r\n
52sdp input: c=IN IP4 192.168.11.151\r\n
53sdp input: t=0 0\r\n
54sdp input: m=audio 16398 RTP/AVP 98\r\n
55sdp input: a=rtpmap:98 AMR/8000\r\n
56sdp input: a=fmtp:98 octet-align=1; mode-set=4\r\n
57sdp input: a=ptime:20\r\n
58sdp input: a=rtcp:16399 IN IP4 192.168.11.151\r\n
Neels Hofmeyr9a515e52022-01-13 20:40:12 +010059sdp_msg_to_sdp_str_buf: v=0\r\n
60sdp_msg_to_sdp_str_buf: o=OsmoMSC 0 0 IN IP4 192.168.11.151\r\n
61sdp_msg_to_sdp_str_buf: s=GSM Call\r\n
62sdp_msg_to_sdp_str_buf: c=IN IP4 192.168.11.151\r\n
63sdp_msg_to_sdp_str_buf: t=0 0\r\n
64sdp_msg_to_sdp_str_buf: m=audio 16398 RTP/AVP 98\r\n
65sdp_msg_to_sdp_str_buf: a=rtpmap:98 AMR/8000\r\n
66sdp_msg_to_sdp_str_buf: a=fmtp:98 octet-align=1; mode-set=4\r\n
67sdp_msg_to_sdp_str_buf: a=ptime:20\r\n
Neels Hofmeyreef45782019-10-21 03:24:04 +020068[1] ok
69
70[2]
71sdp input: v=0\r\n
72sdp input: o=FooBar 1565090289 1565090290 IN IP4 192.168.11.151\r\n
73sdp input: s=FooBar\r\n
74sdp input: c=IN IP4 192.168.11.140\r\n
75sdp input: t=0 0\r\n
76sdp input: m=audio 30436 RTP/AVP 18 0 4 8 101\r\n
77sdp input: a=rtpmap:18 G729/8000\r\n
78sdp input: a=rtpmap:0 PCMU/8000\r\n
79sdp input: a=rtpmap:4 G723/8000\r\n
80sdp input: a=rtpmap:8 PCMA/8000\r\n
81sdp input: a=rtpmap:101 telephone-event/8000\r\n
82sdp input: a=fmtp:101 0-15\r\n
83sdp input: a=sendrecv\r\n
84sdp input: a=rtcp:30437\r\n
85sdp input: a=ptime:20\r\n
Neels Hofmeyr9a515e52022-01-13 20:40:12 +010086sdp_msg_to_sdp_str_buf: v=0\r\n
87sdp_msg_to_sdp_str_buf: o=OsmoMSC 0 0 IN IP4 192.168.11.140\r\n
88sdp_msg_to_sdp_str_buf: s=GSM Call\r\n
89sdp_msg_to_sdp_str_buf: c=IN IP4 192.168.11.140\r\n
90sdp_msg_to_sdp_str_buf: t=0 0\r\n
91sdp_msg_to_sdp_str_buf: m=audio 30436 RTP/AVP 18 0 4 8 101\r\n
92sdp_msg_to_sdp_str_buf: a=rtpmap:18 G729/8000\r\n
93sdp_msg_to_sdp_str_buf: a=rtpmap:0 PCMU/8000\r\n
94sdp_msg_to_sdp_str_buf: a=rtpmap:4 G723/8000\r\n
95sdp_msg_to_sdp_str_buf: a=rtpmap:8 PCMA/8000\r\n
96sdp_msg_to_sdp_str_buf: a=rtpmap:101 telephone-event/8000\r\n
97sdp_msg_to_sdp_str_buf: a=fmtp:101 0-15\r\n
98sdp_msg_to_sdp_str_buf: a=ptime:20\r\n
Neels Hofmeyr01431082022-07-19 12:16:02 +020099sdp_msg_to_sdp_str_buf: a=sendrecv\r\n
Neels Hofmeyreef45782019-10-21 03:24:04 +0200100[2] ok
101
102
103test_intersect
104
105[0] identical codecs lead to no change
106SDP A: v=0\r\n
107SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
108SDP A: s=GSM Call\r\n
109SDP A: c=IN IP4 23.42.23.42\r\n
110SDP A: t=0 0\r\n
111SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
112SDP A: a=rtpmap:112 AMR/8000\r\n
113SDP A: a=fmtp:112 octet-align=1\r\n
114SDP A: a=rtpmap:3 GSM/8000\r\n
115SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
116SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
117SDP A: a=ptime:20\r\n
118 SDP B: c=IN IP4 5.6.7.8\r\n
119 SDP B: m=audio 12345 RTP/AVP 112 3 111 110\r\n
120 SDP B: a=rtpmap:112 AMR/8000\r\n
121 SDP B: a=fmtp:112 octet-align=1\r\n
122 SDP B: a=rtpmap:3 GSM/8000\r\n
123 SDP B: a=rtpmap:111 GSM-HR-08/8000\r\n
124 SDP B: a=rtpmap:110 GSM-EFR/8000\r\n
125parsed SDP A: v=0\r\n
126parsed SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
127parsed SDP A: s=GSM Call\r\n
128parsed SDP A: c=IN IP4 23.42.23.42\r\n
129parsed SDP A: t=0 0\r\n
130parsed SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
131parsed SDP A: a=rtpmap:112 AMR/8000\r\n
132parsed SDP A: a=fmtp:112 octet-align=1\r\n
133parsed SDP A: a=rtpmap:3 GSM/8000\r\n
134parsed SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
135parsed SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
136parsed SDP A: a=ptime:20\r\n
137parsed SDP B: v=0\r\n
138parsed SDP B: o=OsmoMSC 0 0 IN IP4 5.6.7.8\r\n
139parsed SDP B: s=GSM Call\r\n
140parsed SDP B: c=IN IP4 5.6.7.8\r\n
141parsed SDP B: t=0 0\r\n
142parsed SDP B: m=audio 12345 RTP/AVP 112 3 111 110\r\n
143parsed SDP B: a=rtpmap:112 AMR/8000\r\n
144parsed SDP B: a=fmtp:112 octet-align=1\r\n
145parsed SDP B: a=rtpmap:3 GSM/8000\r\n
146parsed SDP B: a=rtpmap:111 GSM-HR-08/8000\r\n
147parsed SDP B: a=rtpmap:110 GSM-EFR/8000\r\n
148parsed SDP B: a=ptime:20\r\n
149sdp_msg_intersection(a,b): v=0\r\n
150sdp_msg_intersection(a,b): o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
151sdp_msg_intersection(a,b): s=GSM Call\r\n
152sdp_msg_intersection(a,b): c=IN IP4 23.42.23.42\r\n
153sdp_msg_intersection(a,b): t=0 0\r\n
154sdp_msg_intersection(a,b): m=audio 30436 RTP/AVP 112 3 111 110\r\n
155sdp_msg_intersection(a,b): a=rtpmap:112 AMR/8000\r\n
156sdp_msg_intersection(a,b): a=fmtp:112 octet-align=1\r\n
157sdp_msg_intersection(a,b): a=rtpmap:3 GSM/8000\r\n
158sdp_msg_intersection(a,b): a=rtpmap:111 GSM-HR-08/8000\r\n
159sdp_msg_intersection(a,b): a=rtpmap:110 GSM-EFR/8000\r\n
160sdp_msg_intersection(a,b): a=ptime:20\r\n
161[0] ok
162
163[1] identical codecs in different order also lead to no change
164SDP A: v=0\r\n
165SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
166SDP A: s=GSM Call\r\n
167SDP A: c=IN IP4 23.42.23.42\r\n
168SDP A: t=0 0\r\n
169SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
170SDP A: a=rtpmap:112 AMR/8000\r\n
171SDP A: a=fmtp:112 octet-align=1\r\n
172SDP A: a=rtpmap:3 GSM/8000\r\n
173SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
174SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
175SDP A: a=ptime:20\r\n
176 SDP B: c=IN IP4 5.6.7.8\r\n
177 SDP B: m=audio 12345 RTP/AVP 3 110 111 112\r\n
178 SDP B: a=rtpmap:3 GSM/8000\r\n
179 SDP B: a=rtpmap:110 GSM-EFR/8000\r\n
180 SDP B: a=rtpmap:111 GSM-HR-08/8000\r\n
181 SDP B: a=rtpmap:112 AMR/8000\r\n
182 SDP B: a=fmtp:112 octet-align=1\r\n
183parsed SDP A: v=0\r\n
184parsed SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
185parsed SDP A: s=GSM Call\r\n
186parsed SDP A: c=IN IP4 23.42.23.42\r\n
187parsed SDP A: t=0 0\r\n
188parsed SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
189parsed SDP A: a=rtpmap:112 AMR/8000\r\n
190parsed SDP A: a=fmtp:112 octet-align=1\r\n
191parsed SDP A: a=rtpmap:3 GSM/8000\r\n
192parsed SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
193parsed SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
194parsed SDP A: a=ptime:20\r\n
195parsed SDP B: v=0\r\n
196parsed SDP B: o=OsmoMSC 0 0 IN IP4 5.6.7.8\r\n
197parsed SDP B: s=GSM Call\r\n
198parsed SDP B: c=IN IP4 5.6.7.8\r\n
199parsed SDP B: t=0 0\r\n
200parsed SDP B: m=audio 12345 RTP/AVP 3 110 111 112\r\n
201parsed SDP B: a=rtpmap:3 GSM/8000\r\n
202parsed SDP B: a=rtpmap:110 GSM-EFR/8000\r\n
203parsed SDP B: a=rtpmap:111 GSM-HR-08/8000\r\n
204parsed SDP B: a=rtpmap:112 AMR/8000\r\n
205parsed SDP B: a=fmtp:112 octet-align=1\r\n
206parsed SDP B: a=ptime:20\r\n
207sdp_msg_intersection(a,b): v=0\r\n
208sdp_msg_intersection(a,b): o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
209sdp_msg_intersection(a,b): s=GSM Call\r\n
210sdp_msg_intersection(a,b): c=IN IP4 23.42.23.42\r\n
211sdp_msg_intersection(a,b): t=0 0\r\n
212sdp_msg_intersection(a,b): m=audio 30436 RTP/AVP 112 3 111 110\r\n
213sdp_msg_intersection(a,b): a=rtpmap:112 AMR/8000\r\n
214sdp_msg_intersection(a,b): a=fmtp:112 octet-align=1\r\n
215sdp_msg_intersection(a,b): a=rtpmap:3 GSM/8000\r\n
216sdp_msg_intersection(a,b): a=rtpmap:111 GSM-HR-08/8000\r\n
217sdp_msg_intersection(a,b): a=rtpmap:110 GSM-EFR/8000\r\n
218sdp_msg_intersection(a,b): a=ptime:20\r\n
219[1] ok
220
221[2] identical codecs with mismatching payload type numbers also lead to no change
222SDP A: v=0\r\n
223SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
224SDP A: s=GSM Call\r\n
225SDP A: c=IN IP4 23.42.23.42\r\n
226SDP A: t=0 0\r\n
227SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
228SDP A: a=rtpmap:112 AMR/8000\r\n
229SDP A: a=fmtp:112 octet-align=1\r\n
230SDP A: a=rtpmap:3 GSM/8000\r\n
231SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
232SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
233SDP A: a=ptime:20\r\n
234 SDP B: c=IN IP4 5.6.7.8\r\n
235 SDP B: m=audio 12345 RTP/AVP 96 97 98 99\r\n
236 SDP B: a=rtpmap:96 GSM/8000\r\n
237 SDP B: a=rtpmap:97 GSM-EFR/8000\r\n
238 SDP B: a=rtpmap:98 GSM-HR-08/8000\r\n
239 SDP B: a=rtpmap:99 AMR/8000\r\n
240 SDP B: a=fmtp:99 octet-align=1\r\n
241parsed SDP A: v=0\r\n
242parsed SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
243parsed SDP A: s=GSM Call\r\n
244parsed SDP A: c=IN IP4 23.42.23.42\r\n
245parsed SDP A: t=0 0\r\n
246parsed SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
247parsed SDP A: a=rtpmap:112 AMR/8000\r\n
248parsed SDP A: a=fmtp:112 octet-align=1\r\n
249parsed SDP A: a=rtpmap:3 GSM/8000\r\n
250parsed SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
251parsed SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
252parsed SDP A: a=ptime:20\r\n
253parsed SDP B: v=0\r\n
254parsed SDP B: o=OsmoMSC 0 0 IN IP4 5.6.7.8\r\n
255parsed SDP B: s=GSM Call\r\n
256parsed SDP B: c=IN IP4 5.6.7.8\r\n
257parsed SDP B: t=0 0\r\n
258parsed SDP B: m=audio 12345 RTP/AVP 96 97 98 99\r\n
259parsed SDP B: a=rtpmap:96 GSM/8000\r\n
260parsed SDP B: a=rtpmap:97 GSM-EFR/8000\r\n
261parsed SDP B: a=rtpmap:98 GSM-HR-08/8000\r\n
262parsed SDP B: a=rtpmap:99 AMR/8000\r\n
263parsed SDP B: a=fmtp:99 octet-align=1\r\n
264parsed SDP B: a=ptime:20\r\n
265sdp_msg_intersection(a,b): v=0\r\n
266sdp_msg_intersection(a,b): o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
267sdp_msg_intersection(a,b): s=GSM Call\r\n
268sdp_msg_intersection(a,b): c=IN IP4 23.42.23.42\r\n
269sdp_msg_intersection(a,b): t=0 0\r\n
270sdp_msg_intersection(a,b): m=audio 30436 RTP/AVP 112 3 111 110\r\n
271sdp_msg_intersection(a,b): a=rtpmap:112 AMR/8000\r\n
272sdp_msg_intersection(a,b): a=fmtp:112 octet-align=1\r\n
273sdp_msg_intersection(a,b): a=rtpmap:3 GSM/8000\r\n
274sdp_msg_intersection(a,b): a=rtpmap:111 GSM-HR-08/8000\r\n
275sdp_msg_intersection(a,b): a=rtpmap:110 GSM-EFR/8000\r\n
276sdp_msg_intersection(a,b): a=ptime:20\r\n
277[2] ok
278
279[3] identical codecs plus some extra codecs also lead to no change
280SDP A: v=0\r\n
281SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
282SDP A: s=GSM Call\r\n
283SDP A: c=IN IP4 23.42.23.42\r\n
284SDP A: t=0 0\r\n
285SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
286SDP A: a=rtpmap:112 AMR/8000\r\n
287SDP A: a=fmtp:112 octet-align=1\r\n
288SDP A: a=rtpmap:3 GSM/8000\r\n
289SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
290SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
291SDP A: a=ptime:20\r\n
292 SDP B: c=IN IP4 5.6.7.8\r\n
293 SDP B: m=audio 12345 RTP/AVP 8 0 96 97 98 99\r\n
294 SDP B: a=rtpmap:8 PCMA/8000\r\n
295 SDP B: a=rtpmap:0 PCMU/8000\r\n
296 SDP B: a=rtpmap:96 GSM/8000\r\n
297 SDP B: a=rtpmap:97 GSM-EFR/8000\r\n
298 SDP B: a=rtpmap:98 GSM-HR-08/8000\r\n
299 SDP B: a=rtpmap:99 AMR/8000\r\n
300 SDP B: a=fmtp:99 octet-align=1\r\n
301parsed SDP A: v=0\r\n
302parsed SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
303parsed SDP A: s=GSM Call\r\n
304parsed SDP A: c=IN IP4 23.42.23.42\r\n
305parsed SDP A: t=0 0\r\n
306parsed SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
307parsed SDP A: a=rtpmap:112 AMR/8000\r\n
308parsed SDP A: a=fmtp:112 octet-align=1\r\n
309parsed SDP A: a=rtpmap:3 GSM/8000\r\n
310parsed SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
311parsed SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
312parsed SDP A: a=ptime:20\r\n
313parsed SDP B: v=0\r\n
314parsed SDP B: o=OsmoMSC 0 0 IN IP4 5.6.7.8\r\n
315parsed SDP B: s=GSM Call\r\n
316parsed SDP B: c=IN IP4 5.6.7.8\r\n
317parsed SDP B: t=0 0\r\n
318parsed SDP B: m=audio 12345 RTP/AVP 8 0 96 97 98 99\r\n
319parsed SDP B: a=rtpmap:8 PCMA/8000\r\n
320parsed SDP B: a=rtpmap:0 PCMU/8000\r\n
321parsed SDP B: a=rtpmap:96 GSM/8000\r\n
322parsed SDP B: a=rtpmap:97 GSM-EFR/8000\r\n
323parsed SDP B: a=rtpmap:98 GSM-HR-08/8000\r\n
324parsed SDP B: a=rtpmap:99 AMR/8000\r\n
325parsed SDP B: a=fmtp:99 octet-align=1\r\n
326parsed SDP B: a=ptime:20\r\n
327sdp_msg_intersection(a,b): v=0\r\n
328sdp_msg_intersection(a,b): o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
329sdp_msg_intersection(a,b): s=GSM Call\r\n
330sdp_msg_intersection(a,b): c=IN IP4 23.42.23.42\r\n
331sdp_msg_intersection(a,b): t=0 0\r\n
332sdp_msg_intersection(a,b): m=audio 30436 RTP/AVP 112 3 111 110\r\n
333sdp_msg_intersection(a,b): a=rtpmap:112 AMR/8000\r\n
334sdp_msg_intersection(a,b): a=fmtp:112 octet-align=1\r\n
335sdp_msg_intersection(a,b): a=rtpmap:3 GSM/8000\r\n
336sdp_msg_intersection(a,b): a=rtpmap:111 GSM-HR-08/8000\r\n
337sdp_msg_intersection(a,b): a=rtpmap:110 GSM-EFR/8000\r\n
338sdp_msg_intersection(a,b): a=ptime:20\r\n
339[3] ok
340
341[4] some codecs removed
342SDP A: v=0\r\n
343SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
344SDP A: s=GSM Call\r\n
345SDP A: c=IN IP4 23.42.23.42\r\n
346SDP A: t=0 0\r\n
347SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
348SDP A: a=rtpmap:112 AMR/8000\r\n
349SDP A: a=fmtp:112 octet-align=1\r\n
350SDP A: a=rtpmap:3 GSM/8000\r\n
351SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
352SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
353SDP A: a=ptime:20\r\n
354 SDP B: v=0\r\n
355 SDP B: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
356 SDP B: s=GSM Call\r\n
357 SDP B: c=IN IP4 23.42.23.42\r\n
358 SDP B: t=0 0\r\n
359 SDP B: m=audio 30436 RTP/AVP 112 110\r\n
360 SDP B: a=rtpmap:112 AMR/8000\r\n
361 SDP B: a=fmtp:112 octet-align=1\r\n
362 SDP B: a=rtpmap:110 GSM-EFR/8000\r\n
363 SDP B: a=ptime:20\r\n
364parsed SDP A: v=0\r\n
365parsed SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
366parsed SDP A: s=GSM Call\r\n
367parsed SDP A: c=IN IP4 23.42.23.42\r\n
368parsed SDP A: t=0 0\r\n
369parsed SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
370parsed SDP A: a=rtpmap:112 AMR/8000\r\n
371parsed SDP A: a=fmtp:112 octet-align=1\r\n
372parsed SDP A: a=rtpmap:3 GSM/8000\r\n
373parsed SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
374parsed SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
375parsed SDP A: a=ptime:20\r\n
376parsed SDP B: v=0\r\n
377parsed SDP B: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
378parsed SDP B: s=GSM Call\r\n
379parsed SDP B: c=IN IP4 23.42.23.42\r\n
380parsed SDP B: t=0 0\r\n
381parsed SDP B: m=audio 30436 RTP/AVP 112 110\r\n
382parsed SDP B: a=rtpmap:112 AMR/8000\r\n
383parsed SDP B: a=fmtp:112 octet-align=1\r\n
384parsed SDP B: a=rtpmap:110 GSM-EFR/8000\r\n
385parsed SDP B: a=ptime:20\r\n
386sdp_msg_intersection(a,b): v=0\r\n
387sdp_msg_intersection(a,b): o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
388sdp_msg_intersection(a,b): s=GSM Call\r\n
389sdp_msg_intersection(a,b): c=IN IP4 23.42.23.42\r\n
390sdp_msg_intersection(a,b): t=0 0\r\n
391sdp_msg_intersection(a,b): m=audio 30436 RTP/AVP 112 110\r\n
392sdp_msg_intersection(a,b): a=rtpmap:112 AMR/8000\r\n
393sdp_msg_intersection(a,b): a=fmtp:112 octet-align=1\r\n
394sdp_msg_intersection(a,b): a=rtpmap:110 GSM-EFR/8000\r\n
395sdp_msg_intersection(a,b): a=ptime:20\r\n
396[4] ok
397
398[5] other codecs removed
399SDP A: v=0\r\n
400SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
401SDP A: s=GSM Call\r\n
402SDP A: c=IN IP4 23.42.23.42\r\n
403SDP A: t=0 0\r\n
404SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
405SDP A: a=rtpmap:112 AMR/8000\r\n
406SDP A: a=fmtp:112 octet-align=1\r\n
407SDP A: a=rtpmap:3 GSM/8000\r\n
408SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
409SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
410SDP A: a=ptime:20\r\n
411 SDP B: v=0\r\n
412 SDP B: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
413 SDP B: s=GSM Call\r\n
414 SDP B: c=IN IP4 23.42.23.42\r\n
415 SDP B: t=0 0\r\n
416 SDP B: m=audio 30436 RTP/AVP 3 111\r\n
417 SDP B: a=rtpmap:3 GSM/8000\r\n
418 SDP B: a=rtpmap:111 GSM-HR-08/8000\r\n
419 SDP B: a=ptime:20\r\n
420parsed SDP A: v=0\r\n
421parsed SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
422parsed SDP A: s=GSM Call\r\n
423parsed SDP A: c=IN IP4 23.42.23.42\r\n
424parsed SDP A: t=0 0\r\n
425parsed SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
426parsed SDP A: a=rtpmap:112 AMR/8000\r\n
427parsed SDP A: a=fmtp:112 octet-align=1\r\n
428parsed SDP A: a=rtpmap:3 GSM/8000\r\n
429parsed SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
430parsed SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
431parsed SDP A: a=ptime:20\r\n
432parsed SDP B: v=0\r\n
433parsed SDP B: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
434parsed SDP B: s=GSM Call\r\n
435parsed SDP B: c=IN IP4 23.42.23.42\r\n
436parsed SDP B: t=0 0\r\n
437parsed SDP B: m=audio 30436 RTP/AVP 3 111\r\n
438parsed SDP B: a=rtpmap:3 GSM/8000\r\n
439parsed SDP B: a=rtpmap:111 GSM-HR-08/8000\r\n
440parsed SDP B: a=ptime:20\r\n
441sdp_msg_intersection(a,b): v=0\r\n
442sdp_msg_intersection(a,b): o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
443sdp_msg_intersection(a,b): s=GSM Call\r\n
444sdp_msg_intersection(a,b): c=IN IP4 23.42.23.42\r\n
445sdp_msg_intersection(a,b): t=0 0\r\n
446sdp_msg_intersection(a,b): m=audio 30436 RTP/AVP 3 111\r\n
447sdp_msg_intersection(a,b): a=rtpmap:3 GSM/8000\r\n
448sdp_msg_intersection(a,b): a=rtpmap:111 GSM-HR-08/8000\r\n
449sdp_msg_intersection(a,b): a=ptime:20\r\n
450[5] ok
451
452[6] all codecs removed
453SDP A: v=0\r\n
454SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
455SDP A: s=GSM Call\r\n
456SDP A: c=IN IP4 23.42.23.42\r\n
457SDP A: t=0 0\r\n
458SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
459SDP A: a=rtpmap:112 AMR/8000\r\n
460SDP A: a=fmtp:112 octet-align=1\r\n
461SDP A: a=rtpmap:3 GSM/8000\r\n
462SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
463SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
464SDP A: a=ptime:20\r\n
465 SDP B: s=empty
466parsed SDP A: v=0\r\n
467parsed SDP A: o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
468parsed SDP A: s=GSM Call\r\n
469parsed SDP A: c=IN IP4 23.42.23.42\r\n
470parsed SDP A: t=0 0\r\n
471parsed SDP A: m=audio 30436 RTP/AVP 112 3 111 110\r\n
472parsed SDP A: a=rtpmap:112 AMR/8000\r\n
473parsed SDP A: a=fmtp:112 octet-align=1\r\n
474parsed SDP A: a=rtpmap:3 GSM/8000\r\n
475parsed SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
476parsed SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
477parsed SDP A: a=ptime:20\r\n
478parsed SDP B: v=0\r\n
479parsed SDP B: o=OsmoMSC 0 0 IN IP4 0.0.0.0\r\n
480parsed SDP B: s=GSM Call\r\n
481parsed SDP B: c=IN IP4 0.0.0.0\r\n
482parsed SDP B: t=0 0\r\n
483parsed SDP B: m=audio 0 RTP/AVP\r\n
484parsed SDP B: a=ptime:20\r\n
485sdp_msg_intersection(a,b): v=0\r\n
486sdp_msg_intersection(a,b): o=OsmoMSC 0 0 IN IP4 23.42.23.42\r\n
487sdp_msg_intersection(a,b): s=GSM Call\r\n
488sdp_msg_intersection(a,b): c=IN IP4 23.42.23.42\r\n
489sdp_msg_intersection(a,b): t=0 0\r\n
490sdp_msg_intersection(a,b): m=audio 30436 RTP/AVP\r\n
491sdp_msg_intersection(a,b): a=ptime:20\r\n
492[6] ok
493
494[7] some real world test case
495SDP A: v=0\r\n
496SDP A: o=OsmoMSC 0 0 IN IP4 0.0.0.0\r\n
497SDP A: s=GSM Call\r\n
498SDP A: c=IN IP4 0.0.0.0\r\n
499SDP A: t=0 0\r\n
500SDP A: m=audio 0 RTP/AVP 112 113 110 3 111\r\n
501SDP A: a=rtpmap:112 AMR/8000\r\n
502SDP A: a=fmtp:112 octet-align=1;mode-set=0,1,2,3\r\n
503SDP A: a=rtpmap:113 AMR-WB/8000\r\n
504SDP A: a=fmtp:113 octet-align=1\r\n
505SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
506SDP A: a=rtpmap:3 GSM/8000\r\n
507SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
508SDP A: a=ptime:20\r\n
509 SDP B: v=0\r\n
510 SDP B: o=OsmoMSC 0 0 IN IP4 0.0.0.0\r\n
511 SDP B: s=GSM Call\r\n
512 SDP B: c=IN IP4 0.0.0.0\r\n
513 SDP B: t=0 0\r\n
514 SDP B: m=audio 0 RTP/AVP 112 113 110 3 111\r\n
515 SDP B: a=rtpmap:112 AMR/8000\r\n
516 SDP B: a=fmtp:112 octet-align=1;mode-set=0,1,2,3\r\n
517 SDP B: a=rtpmap:113 AMR-WB/8000\r\n
518 SDP B: a=fmtp:113 octet-align=1\r\n
519 SDP B: a=rtpmap:110 GSM-EFR/8000\r\n
520 SDP B: a=rtpmap:3 GSM/8000\r\n
521 SDP B: a=rtpmap:111 GSM-HR-08/8000\r\n
522 SDP B: a=ptime:20\r\n
523parsed SDP A: v=0\r\n
524parsed SDP A: o=OsmoMSC 0 0 IN IP4 0.0.0.0\r\n
525parsed SDP A: s=GSM Call\r\n
526parsed SDP A: c=IN IP4 0.0.0.0\r\n
527parsed SDP A: t=0 0\r\n
528parsed SDP A: m=audio 0 RTP/AVP 112 113 110 3 111\r\n
529parsed SDP A: a=rtpmap:112 AMR/8000\r\n
530parsed SDP A: a=fmtp:112 octet-align=1;mode-set=0,1,2,3\r\n
531parsed SDP A: a=rtpmap:113 AMR-WB/8000\r\n
532parsed SDP A: a=fmtp:113 octet-align=1\r\n
533parsed SDP A: a=rtpmap:110 GSM-EFR/8000\r\n
534parsed SDP A: a=rtpmap:3 GSM/8000\r\n
535parsed SDP A: a=rtpmap:111 GSM-HR-08/8000\r\n
536parsed SDP A: a=ptime:20\r\n
537parsed SDP B: v=0\r\n
538parsed SDP B: o=OsmoMSC 0 0 IN IP4 0.0.0.0\r\n
539parsed SDP B: s=GSM Call\r\n
540parsed SDP B: c=IN IP4 0.0.0.0\r\n
541parsed SDP B: t=0 0\r\n
542parsed SDP B: m=audio 0 RTP/AVP 112 113 110 3 111\r\n
543parsed SDP B: a=rtpmap:112 AMR/8000\r\n
544parsed SDP B: a=fmtp:112 octet-align=1;mode-set=0,1,2,3\r\n
545parsed SDP B: a=rtpmap:113 AMR-WB/8000\r\n
546parsed SDP B: a=fmtp:113 octet-align=1\r\n
547parsed SDP B: a=rtpmap:110 GSM-EFR/8000\r\n
548parsed SDP B: a=rtpmap:3 GSM/8000\r\n
549parsed SDP B: a=rtpmap:111 GSM-HR-08/8000\r\n
550parsed SDP B: a=ptime:20\r\n
551sdp_msg_intersection(a,b): v=0\r\n
552sdp_msg_intersection(a,b): o=OsmoMSC 0 0 IN IP4 0.0.0.0\r\n
553sdp_msg_intersection(a,b): s=GSM Call\r\n
554sdp_msg_intersection(a,b): c=IN IP4 0.0.0.0\r\n
555sdp_msg_intersection(a,b): t=0 0\r\n
556sdp_msg_intersection(a,b): m=audio 0 RTP/AVP 112 113 110 3 111\r\n
557sdp_msg_intersection(a,b): a=rtpmap:112 AMR/8000\r\n
558sdp_msg_intersection(a,b): a=fmtp:112 octet-align=1;mode-set=0,1,2,3\r\n
559sdp_msg_intersection(a,b): a=rtpmap:113 AMR-WB/8000\r\n
560sdp_msg_intersection(a,b): a=fmtp:113 octet-align=1\r\n
561sdp_msg_intersection(a,b): a=rtpmap:110 GSM-EFR/8000\r\n
562sdp_msg_intersection(a,b): a=rtpmap:3 GSM/8000\r\n
563sdp_msg_intersection(a,b): a=rtpmap:111 GSM-HR-08/8000\r\n
564sdp_msg_intersection(a,b): a=ptime:20\r\n
565[7] ok
566
567
568test_select
569
570[0]
Neels Hofmeyr99ab7c52022-01-13 19:04:59 +0100571SDP: AMR:octet-align=1#112,GSM#3,GSM-HR-08#111,GSM-EFR#110
572Select: AMR:octet-align=1#112
573SDP: AMR:octet-align=1#112,GSM#3,GSM-HR-08#111,GSM-EFR#110
Neels Hofmeyreef45782019-10-21 03:24:04 +0200574[0] ok
575
576[1]
Neels Hofmeyr99ab7c52022-01-13 19:04:59 +0100577SDP: AMR:octet-align=1#112,GSM#3,GSM-HR-08#111,GSM-EFR#110
578Select: GSM#3
579SDP: GSM#3,AMR:octet-align=1#112,GSM-HR-08#111,GSM-EFR#110
Neels Hofmeyreef45782019-10-21 03:24:04 +0200580[1] ok
581
582[2]
Neels Hofmeyr99ab7c52022-01-13 19:04:59 +0100583SDP: AMR:octet-align=1#112,GSM#3,GSM-HR-08#111,GSM-EFR#110
584Select: GSM-HR-08#111
585SDP: GSM-HR-08#111,AMR:octet-align=1#112,GSM#3,GSM-EFR#110
Neels Hofmeyreef45782019-10-21 03:24:04 +0200586[2] ok
587
588[3]
Neels Hofmeyr99ab7c52022-01-13 19:04:59 +0100589SDP: AMR:octet-align=1#112,GSM#3,GSM-HR-08#111,GSM-EFR#110
590Select: GSM-EFR#110
591SDP: GSM-EFR#110,AMR:octet-align=1#112,GSM#3,GSM-HR-08#111
Neels Hofmeyreef45782019-10-21 03:24:04 +0200592[3] ok