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