[asterisk-bugs] [JIRA] (ASTERISK-24388) res_pjsip_sdp_rtp: Declining media streams should remove all lines but the media session (m) and connection line (c)

Matt Jordan (JIRA) noreply at issues.asterisk.org
Fri Oct 3 05:01:29 CDT 2014


Matt Jordan created ASTERISK-24388:
--------------------------------------

             Summary: res_pjsip_sdp_rtp: Declining media streams should remove all lines but the media session (m) and connection line (c)
                 Key: ASTERISK-24388
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24388
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Resources/res_pjsip_sdp_rtp
            Reporter: Matt Jordan
            Severity: Minor


When we decline a media stream (after a few handy patches), we do properly set the port on the media stream to 0 and include the connection information, which is good. We also strip out all media attributes (which is also good).

Unfortunately, we keep other subsequent media lines that we don't understand. This _could_ result in some bad clients processing said lines. Some of those lines, for video streams, do interesting things like restrict bandwidth. This can result in a rejected media stream actually restricting the bandwidth of an accepted media stream.

A sample call flow is attached, however, the interesting bit of the SDP is as follows:

* Original offer*:
{noformat}
v=0
o=- 1412322884 1412322885 IN IP4 127.0.0.1
s=-
c=IN IP4 132.177.253.37
b=AS:3796
t=0 0
m=audio 40102 RTP/AVP 97 101 102 103 104 105 106 107 108 109 9 18 0 8 125 99
c=IN IP4 132.177.253.37
a=rtpmap:97 MP4A-LATM/90000
a=fmtp:97 profile-level-id=24;object=23;bitrate=64000
a=rtpmap:101 opus/48000/2
a=rtpmap:102 SIREN14/16000
a=fmtp:102 bitrate=48000
a=rtpmap:103 SIREN14/16000
a=fmtp:103 bitrate=32000
a=rtpmap:104 SIREN14/16000
a=fmtp:104 bitrate=24000
a=rtpmap:105 G7221/32000
a=fmtp:105 bitrate=48000
a=rtpmap:106 G7221/32000
a=fmtp:106 bitrate=32000
a=rtpmap:107 G7221/32000
a=fmtp:107 bitrate=24000
a=rtpmap:108 G7221/16000
a=fmtp:108 bitrate=32000
a=rtpmap:109 G7221/16000
a=fmtp:109 bitrate=24000
a=rtpmap:9 G722/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=yes
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:125 ulpfec/90000
a=rtpmap:99 telephone-event/8000
a=fmtp:99 0-15
a=rtcp:40103 IN IP4 132.177.253.37
a=sendrecv
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:gka1JCPnCZ9MwnC1un85G34yP95AyHJhbjApGnQ/|2^48
a=crypto:2 AES_CM_128_HMAC_SHA1_80 inline:gka1JCPnCZ9MwnC1un85G34yP95AyHJhbjApGnQ/|2^48 UNENCRYPTED_SRTCP
a=candidate:1 1 udp 2044723199 132.177.253.37 40102 typ host
a=candidate:1 2 udp 2044723198 132.177.253.37 40103 typ host
a=candidate:4 1 udp 1038090239 132.177.253.4 24000 typ relay raddr 132.177.253.37 rport 40102
a=candidate:4 2 udp 1038090238 132.177.253.4 24001 typ relay raddr 132.177.253.37 rport 40103
a=candidate:2 1 udp 2044722943 2606:4100:3880:2520::8:3 40102 typ host
a=candidate:2 2 udp 2044722942 2606:4100:3880:2520::8:3 40103 typ host
a=ice-ufrag:C/3Y
a=ice-pwd:yepNKgVjgHr5a7NkekFiB3
m=video 40104 RTP/AVP 97 98 101 102 99 123 34 124 125
c=IN IP4 132.177.253.37
b=TIAS:3732480
a=rtpmap:97 H264/90000
a=fmtp:97 profile-level-id=428014;max-br=3732;max-mbps=245760;max-fs=8192;max-smbps=245760;max-fps=3000
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=428014;max-br=3732;max-mbps=245760;max-fs=8192;max-smbps=245760;max-fps=3000;packetization-mode=1
a=rtpmap:101 H264/90000
a=fmtp:101 profile-level-id=42c014;max-br=3732;max-mbps=245760;max-fs=8192;max-smbps=245760;max-fps=3000
a=rtpmap:102 H264/90000
a=fmtp:102 profile-level-id=42c014;max-br=3732;max-mbps=245760;max-fs=8192;max-smbps=245760;max-fps=3000;packetization-mode=1
a=rtpmap:99 H263-1998/90000
a=fmtp:99 custom=512,288,1;cif=1;qcif=1;maxbr=10880
a=rtpmap:123 VP8/90000
a=fmtp:123 max-fs=3600;max-fr=30
a=rtpmap:34 H263/90000
a=fmtp:34 cif=1;qcif=1;maxbr=10880
a=rtpmap:124 red/90000
a=rtpmap:125 ulpfec/90000
a=rtcp:40105 IN IP4 132.177.253.37
a=rtcp-fb:* nack pli
a=rtcp-fb:* nack
a=sendrecv
a=content:main
a=label:11
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:EFmX5mwZNUR0XIFsVqilwrPmVw9DQhh5GCYh/hUF|2^48
a=crypto:2 AES_CM_128_HMAC_SHA1_80 inline:EFmX5mwZNUR0XIFsVqilwrPmVw9DQhh5GCYh/hUF|2^48 UNENCRYPTED_SRTCP
a=candidate:1 1 udp 2044723199 132.177.253.37 40104 typ host
a=candidate:1 2 udp 2044723198 132.177.253.37 40105 typ host
a=candidate:4 1 udp 1038090239 132.177.253.4 24002 typ relay raddr 132.177.253.37 rport 40104
a=candidate:4 2 udp 1038090238 132.177.253.4 24003 typ relay raddr 132.177.253.37 rport 40105
a=candidate:2 1 udp 2044722943 2606:4100:3880:2520::8:3 40104 typ host
a=candidate:2 2 udp 2044722942 2606:4100:3880:2520::8:3 40105 typ host
a=ice-ufrag:RffZ
a=ice-pwd:xx6JDzMpjQEGrOkaBBrOQh
m=video 40106 RTP/AVP 97 98 101 102 99 123 34 125
c=IN IP4 132.177.253.37
b=TIAS:3732480
a=rtpmap:97 H264/90000
a=fmtp:97 profile-level-id=428014;max-br=3732;max-mbps=245760;max-fs=8192;max-smbps=245760;max-fps=3000
a=rtpmap:98 H264/90000
a=fmtp:98 profile-level-id=428014;max-br=3732;max-mbps=245760;max-fs=8192;max-smbps=245760;max-fps=3000;packetization-mode=1
a=rtpmap:101 H264/90000
a=fmtp:101 profile-level-id=42c014;max-br=3732;max-mbps=245760;max-fs=8192;max-smbps=245760;max-fps=3000
a=rtpmap:102 H264/90000
a=fmtp:102 profile-level-id=42c014;max-br=3732;max-mbps=245760;max-fs=8192;max-smbps=245760;max-fps=3000;packetization-mode=1
a=rtpmap:99 H263-1998/90000
a=fmtp:99 custom=1024,768,1;custom=800,600,1;custom=640,480,1;cif=1;qcif=1;maxbr=10880
a=rtpmap:123 VP8/90000
a=fmtp:123 max-fs=3600;max-fr=30
a=rtpmap:34 H263/90000
a=fmtp:34 cif=1;qcif=1;maxbr=10880
a=rtpmap:125 ulpfec/90000
a=rtcp:40107 IN IP4 132.177.253.37
a=rtcp-fb:* nack pli
a=rtcp-fb:* nack
a=sendrecv
a=content:slides
a=label:12
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:j4p9D4c7w9ax5MnyqcU/DdWvo5hTHPB8SjaRH45y|2^48
a=crypto:2 AES_CM_128_HMAC_SHA1_80 inline:j4p9D4c7w9ax5MnyqcU/DdWvo5hTHPB8SjaRH45y|2^48 UNENCRYPTED_SRTCP
a=candidate:1 1 udp 2044723199 132.177.253.37 40106 typ host
a=candidate:1 2 udp 2044723198 132.177.253.37 40107 typ host
a=candidate:4 1 udp 1038090239 132.177.253.4 24004 typ relay raddr 132.177.253.37 rport 40106
a=candidate:4 2 udp 1038090238 132.177.253.4 24005 typ relay raddr 132.177.253.37 rport 40107
a=candidate:2 1 udp 2044722943 2606:4100:3880:2520::8:3 40106 typ host
a=candidate:2 2 udp 2044722942 2606:4100:3880:2520::8:3 40107 typ host
a=ice-ufrag:PZj+
a=ice-pwd:wro7MqOi3HVKD/K7JkJgtr
m=application 40108 UDP/BFCP *
c=IN IP4 132.177.253.37
a=userid:3383
a=bfcpver:1
a=floorctrl:s-only
a=floorid:8775 mstrm:12
a=confid:976166491
a=candidate:1 1 udp 2044723199 132.177.253.37 40108 typ host
a=candidate:4 1 udp 1038090239 132.177.253.4 24006 typ relay raddr 132.177.253.37 rport 40108
a=candidate:2 1 udp 2044722943 2606:4100:3880:2520::8:3 40108 typ host
a=ice-ufrag:/0zV
a=ice-pwd:wBI9M1TwXzTaT5pm8DBS3f
{noformat}

*Answer. Note the _b_ hanging out in the rejected video stream*:

{noformat}
v=0
o=- 1412322884 1412322887 IN IP4 132.177.253.25
s=Asterisk
c=IN IP4 2606:4100:3880:2520::6:1
t=0 0
m=audio 28662 RTP/AVP 9 0 8 99
c=IN IP4 2606:4100:3880:2520::6:1
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:K2esMQfj3cGO2oS8vmc0eoHJldHq43Nb/83A3Ll4
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:99 telephone-event/8000
a=fmtp:99 0-16
a=ptime:20
a=maxptime:150
a=sendrecv
m=video 16224 RTP/AVP 97
c=IN IP4 2606:4100:3880:2520::6:1
a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:qXik/NUXqZOAFZQpi2f4GqYKtaWUJ1A95gSEI5AN
a=rtpmap:97 H264/90000
a=fmtp:97 max-mbps=245760;max-fs=8192;max-br=3732;max-smbps=245760;max-fps=3000;profile-level-id=428014
a=sendrecv
m=video 0 RTP/AVP 97 98 101 102 99 123 34 125
c=IN IP4 2606:4100:3880:2520::6:1
b=TIAS:3732480
m=application 0 UDP/BFCP *
c=IN IP4 2606:4100:3880:2520::6:1
{noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list