From a56e1602a295c4afa1cc3ef6b9d7dc453b681c98 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 11 Jan 2024 11:51:45 -0500 Subject: [PATCH] MT#55283 remove a=ssrc exception Fix up tests to match reordered attributes. Remove 10-year-old a=ssrc parsing code completely as it's unused. Change-Id: I78064b1b2f27a442fe8bf4b448c7174c5458d3b1 --- daemon/call.c | 1 - daemon/sdp.c | 37 ---------------------------- t/auto-daemon-tests-websocket.py | 24 +++++++++--------- t/auto-daemon-tests.pl | 42 ++++++++++++++++---------------- 4 files changed, 33 insertions(+), 71 deletions(-) diff --git a/daemon/call.c b/daemon/call.c index 2a06ad6bd..266dcabf9 100644 --- a/daemon/call.c +++ b/daemon/call.c @@ -2701,7 +2701,6 @@ static void __media_init_from_flags(struct call_media *other_media, struct call_ } /* moved as plain text attributes, required later by sdp_create() - * ssrc * extmap * other (unknown type) */ diff --git a/daemon/sdp.c b/daemon/sdp.c index 58b5d3aa4..2da043573 100644 --- a/daemon/sdp.c +++ b/daemon/sdp.c @@ -31,7 +31,6 @@ enum attr_id { ATTR_ICE_UFRAG, ATTR_ICE_PWD, ATTR_CRYPTO, - ATTR_SSRC, ATTR_INACTIVE, ATTR_SENDRECV, ATTR_SENDONLY, @@ -594,30 +593,6 @@ static int parse_attribute_group(struct sdp_attribute *output) { return 0; } -static int parse_attribute_ssrc(struct sdp_attribute *output) { - struct attribute_ssrc *s; - - output->attr = ATTR_SSRC; - - PARSE_INIT; - EXTRACT_TOKEN(ssrc.id_str); - EXTRACT_TOKEN(ssrc.attr_str); - - s = &output->ssrc; - - s->id = strtoul(s->id_str.s, NULL, 10); - if (!s->id) - return -1; - - s->attr = s->attr_str; - if (str_chr_str(&s->value, &s->attr, ':')) { - s->attr.len = s->value.s - s->attr.s; - str_shift(&s->value, 1); - } - - return 0; -} - static int parse_attribute_crypto(struct sdp_attribute *output) { char *endp; struct attribute_crypto *c; @@ -1130,9 +1105,6 @@ static int parse_attribute(struct sdp_attribute *a) { case CSH_LOOKUP("rtcp"): ret = parse_attribute_rtcp(a); break; - case CSH_LOOKUP("ssrc"): - ret = parse_attribute_ssrc(a); - break; case CSH_LOOKUP("fmtp"): ret = parse_attribute_fmtp(a); break; @@ -1861,14 +1833,6 @@ int sdp_streams(const sdp_sessions_q *sessions, sdp_streams_q *streams, sdp_ng_f * Attributes are carried only as plain text. */ { - /* a=ssrc */ - attrs = attr_list_get_by_id(&media->attributes, ATTR_SSRC); - for (__auto_type ll = attrs ? attrs->head : NULL; ll; ll = ll->next) { - attr = ll->data; - str * ret = str_dup(&attr->line_value); - t_queue_push_tail(&sp->attributes, ret); - } - /* a=extmap */ if (!flags->strip_extmap) { attrs = attr_list_get_by_id(&media->attributes, ATTR_EXTMAP); @@ -2481,7 +2445,6 @@ static int process_media_attributes(struct sdp_chopper *chop, struct sdp_media * * ssrc / msid / unknown types */ case ATTR_OTHER: - case ATTR_SSRC: goto strip; default: diff --git a/t/auto-daemon-tests-websocket.py b/t/auto-daemon-tests-websocket.py index ac14f75a0..f3a825a38 100644 --- a/t/auto-daemon-tests-websocket.py +++ b/t/auto-daemon-tests-websocket.py @@ -1727,10 +1727,6 @@ class TestVideoroom(unittest.TestCase): "a=rtpmap:111 opus/48000/2\r\n" "a=fmtp:111 useinbandfec=1; minptime=10\r\n" "a=rtcp-fb:111 transport-cc\r\n" - "a=ssrc:677770262 cname:NMNDwVd66x2SfiO0\r\n" - "a=ssrc:677770262 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" - "a=ssrc:677770262 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" - "a=ssrc:677770262 label:2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" "a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n" "a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n" "a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n" @@ -1738,6 +1734,10 @@ class TestVideoroom(unittest.TestCase): "a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\n" "a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\n" "a=msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" + "a=ssrc:677770262 cname:NMNDwVd66x2SfiO0\r\n" + "a=ssrc:677770262 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" + "a=ssrc:677770262 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" + "a=ssrc:677770262 label:2de0f1b0-3a39-450e-9804-8305ec87452b\r\n" "a=sendonly\r\n" "a=rtcp-mux\r\n" "a=setup:actpass\r\n" @@ -1757,14 +1757,6 @@ class TestVideoroom(unittest.TestCase): "a=rtcp-fb:96 ccm fir\r\n" "a=rtcp-fb:96 nack\r\n" "a=rtcp-fb:96 nack pli\r\n" - "a=ssrc:3005569364 cname:NMNDwVd66x2SfiO0\r\n" - "a=ssrc:3005569364 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" - "a=ssrc:3005569364 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" - "a=ssrc:3005569364 label:6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" - "a=ssrc:2001490794 cname:NMNDwVd66x2SfiO0\r\n" - "a=ssrc:2001490794 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" - "a=ssrc:2001490794 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" - "a=ssrc:2001490794 label:6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\n" "a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n" "a=extmap:13 urn:3gpp:video-orientation\r\n" @@ -1779,6 +1771,14 @@ class TestVideoroom(unittest.TestCase): "a=msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=rtcp-rsize\r\n" "a=ssrc-group:FID 3005569364 2001490794\r\n" + "a=ssrc:3005569364 cname:NMNDwVd66x2SfiO0\r\n" + "a=ssrc:3005569364 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" + "a=ssrc:3005569364 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" + "a=ssrc:3005569364 label:6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" + "a=ssrc:2001490794 cname:NMNDwVd66x2SfiO0\r\n" + "a=ssrc:2001490794 msid:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC 6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" + "a=ssrc:2001490794 mslabel:hJifdaJwqEqHxSG0pVbs1DrLAwiHqz7fKlqC\r\n" + "a=ssrc:2001490794 label:6d6ec7a7-e3d7-4c82-b03c-45e017713abd\r\n" "a=sendonly\r\n" "a=rtcp-mux\r\n" "a=setup:actpass\r\n" diff --git a/t/auto-daemon-tests.pl b/t/auto-daemon-tests.pl index bb7e9c131..674e83bea 100755 --- a/t/auto-daemon-tests.pl +++ b/t/auto-daemon-tests.pl @@ -553,9 +553,9 @@ a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1 a=rtpmap:97 telephone-event/48000 a=fmtp:97 0-15 +a=msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d a=ssrc:889323910 cname:OCP1KqOq/lFpZRp0 a=ssrc:889323910 msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d -a=msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d a=rtcp-xr:voip-metrics a=sendonly a=rtcp:PORT @@ -610,8 +610,8 @@ m=audio PORT RTP/AVP 0 126 c=IN IP4 203.0.113.1 a=rtpmap:0 PCMU/8000 a=rtpmap:126 telephone-event/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=recvonly a=ptime:20 SDP @@ -665,8 +665,8 @@ a=rtpmap:126 telephone-event/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:9 G722/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=sendrecv a=ptime:20 SDP @@ -718,8 +718,8 @@ a=rtpmap:126 telephone-event/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:9 G722/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=sendrecv a=ptime:20 SDP @@ -769,9 +769,9 @@ a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1 a=rtpmap:97 telephone-event/48000 a=fmtp:97 0-15 +a=msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d a=ssrc:889323910 cname:OCP1KqOq/lFpZRp0 a=ssrc:889323910 msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d -a=msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d a=rtcp-xr:voip-metrics a=sendonly a=rtcp:PORT @@ -826,8 +826,8 @@ m=audio PORT RTP/AVP 0 126 c=IN IP4 203.0.113.1 a=rtpmap:0 PCMU/8000 a=rtpmap:126 telephone-event/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=recvonly a=ptime:20 SDP @@ -881,8 +881,8 @@ a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:9 G722/8000 a=rtpmap:126 telephone-event/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=sendrecv a=ptime:20 SDP @@ -934,8 +934,8 @@ a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:9 G722/8000 a=rtpmap:126 telephone-event/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=sendrecv a=ptime:20 SDP @@ -985,9 +985,9 @@ a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1 a=rtpmap:97 telephone-event/48000 a=fmtp:97 0-15 +a=msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d a=ssrc:889323910 cname:OCP1KqOq/lFpZRp0 a=ssrc:889323910 msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d -a=msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d a=rtcp-xr:voip-metrics a=sendonly a=rtcp:PORT @@ -1042,8 +1042,8 @@ m=audio PORT RTP/AVP 0 126 c=IN IP4 203.0.113.1 a=rtpmap:0 PCMU/8000 a=rtpmap:126 telephone-event/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=recvonly a=ptime:20 SDP @@ -1097,8 +1097,8 @@ a=rtpmap:126 telephone-event/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:9 G722/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=sendrecv a=ptime:20 SDP @@ -1150,8 +1150,8 @@ a=rtpmap:126 telephone-event/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:9 G722/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=sendrecv a=ptime:20 SDP @@ -1201,9 +1201,9 @@ a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1 a=rtpmap:97 telephone-event/48000 a=fmtp:97 0-15 +a=msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d a=ssrc:889323910 cname:OCP1KqOq/lFpZRp0 a=ssrc:889323910 msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d -a=msid:61cc3524-d456-4497-b92e-2babd3d83d84 02c5b74b-b03e-44a6-b175-6639fa009f2d a=rtcp-xr:voip-metrics a=sendonly a=rtcp:PORT @@ -1258,8 +1258,8 @@ m=audio PORT RTP/AVP 0 126 c=IN IP4 203.0.113.1 a=rtpmap:0 PCMU/8000 a=rtpmap:126 telephone-event/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=recvonly a=ptime:20 SDP @@ -1313,8 +1313,8 @@ a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:9 G722/8000 a=rtpmap:126 telephone-event/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=sendrecv a=ptime:20 SDP @@ -1366,8 +1366,8 @@ a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:9 G722/8000 a=rtpmap:126 telephone-event/8000 -a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=msid:4d091157-8680-47a2-b124-36b52fefea19 ed2eaf3a-926c-4c1a-a315-e02458e05292 +a=ssrc:572293880 cname:pHBBuw7Qa5BaQ36a a=sendrecv a=ptime:20 SDP @@ -14072,16 +14072,16 @@ a=rtpmap:110 telephone-event/48000 a=rtpmap:112 telephone-event/32000 a=rtpmap:113 telephone-event/16000 a=rtpmap:126 telephone-event/8000 -a=ssrc:2628106563 cname:wMyHbPOf/cCq2tup -a=ssrc:2628106563 msid:qDSKVQw0XQOFzGhek25Kn3RLxyHTM2ooxMUY 7d669de6-65e9-4fbe-829e-e89dc4baf81c -a=ssrc:2628106563 mslabel:qDSKVQw0XQOFzGhek25Kn3RLxyHTM2ooxMUY -a=ssrc:2628106563 label:7d669de6-65e9-4fbe-829e-e89dc4baf81c a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id a=msid:qDSKVQw0XQOFzGhek25Kn3RLxyHTM2ooxMUY 7d669de6-65e9-4fbe-829e-e89dc4baf81c +a=ssrc:2628106563 cname:wMyHbPOf/cCq2tup +a=ssrc:2628106563 msid:qDSKVQw0XQOFzGhek25Kn3RLxyHTM2ooxMUY 7d669de6-65e9-4fbe-829e-e89dc4baf81c +a=ssrc:2628106563 mslabel:qDSKVQw0XQOFzGhek25Kn3RLxyHTM2ooxMUY +a=ssrc:2628106563 label:7d669de6-65e9-4fbe-829e-e89dc4baf81c a=sendrecv a=candidate:ICEBASE 1 UDP 16777215 203.0.113.1 PORT typ relay raddr 203.0.113.1 rport PORT a=candidate:ICEBASE 1 UDP 16776959 2001:db8:4321::1 PORT typ relay raddr 2001:db8:4321::1 rport PORT @@ -14182,13 +14182,13 @@ a=rtpmap:110 telephone-event/48000 a=rtpmap:112 telephone-event/32000 a=rtpmap:113 telephone-event/16000 a=rtpmap:126 telephone-event/8000 -a=ssrc:97254339 cname:d7zRWvteaW9fc2Yu a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:2 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:3 urn:ietf:params:rtp-hdrext:sdes:mid a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id a=msid:9z51ZTKhoszc7zqj5gxEX309ODe940YpMplv 8a622ecc-1fff-4675-8bf4-7b924845b3fd +a=ssrc:97254339 cname:d7zRWvteaW9fc2Yu a=sendrecv a=rtcp:PORT a=rtcp-mux