signalwire / freeswitch

FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device.
https://freeswitch.com/#getting-started
Other
3.32k stars 1.38k forks source link

Video codec is not sent to A-leg in reinvite from B-leg #2491

Open admin-toneca opened 2 weeks ago

admin-toneca commented 2 weeks ago

Describe the bug Freeswitch remove video media from SDP when B-leg send reinvite to A-leg with change video mode. But it works normal when A-leg send to B-leg.

To Reproduce Steps to reproduce the behavior:

  1. Set vars in dialplan:
    <action application="set" data="rtp_pass_codecs_on_stream_change=true" inline="true"/>
    <action application="export" data="rtp_pass_codecs_on_stream_change=true"/>
  2. Make call (audio or video does not matter)
  3. Send reinvite with video in SDP from B-leg
  4. Receive reinvite on A-leg without video.

Package version or git hash

Trace logs Receive re-INVITE from B-leg: v=0 o=1670 4045 2380 IN IP4 10.20.0.231 s=Talk c=IN IP4 10.20.0.231 b=AS:1152 t=0 0 a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics m=audio 37228 RTP/AVP 0 8 101 a=rtcp-fb: trr-int 1000 a=rtcp-fb: ccm tmmbr a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=sendrecv a=rtcp:37229 a=ptime:20 m=video 37264 RTP/AVP 96 a=rtcp-fb: trr-int 1000 a=rtcp-fb: ccm tmmbr a=rtpmap:96 H264/90000 a=fmtp:96 profile-level-id=42801F a=rtcp-fb:96 nack pli a=rtcp-fb:96 ccm fir a=sendrecv a=rtcp:37265

Send re-INVITE to A-leg: v=0 o=Demo 1718781266 1718781269 IN IP4 10.20.20.51 s=Demo c=IN IP4 10.20.20.51 t=0 0 m=audio 30696 RTP/AVP 0 8 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=rtcp:30697 IN IP4 10.20.20.51 a=ptime:20 a=sendrecv

sip log.txt