[Freeswitch-users] Incorrect reply to T.38 re-INVITE

Tomasz Ostrowski tomasz.o.ostrowski at gmail.com
Fri Feb 19 22:24:40 MSK 2016


Hello,
while testing FreeSWITCH 1.4.26 I stumbled upon old and seemingly ignored  
problem when FreeSWITCH replies with SDP containing:

m=image 0 udptl t38
m=image 0 udptl t38

when receiving re-INVITE with disabled audio media and enabled image media  
(switching from audio to image). As far as I know this is correct way to  
change media, from RFC 3264:

8.1 Adding a Media Stream

    New media streams are created by new additional media descriptions
    below the existing ones, or by reusing the "slot" used by an old
    media stream which had been disabled by setting its port to zero.

    Reusing its slot means that the new media description replaces the
    old one, but retains its positioning relative to other media
    descriptions in  the SDP.  New media descriptions MUST appear below
    any existing media sections.  The rules for formatting these media
    descriptions are identical to those described in Section 5.

    When the answerer receives an SDP with more media descriptions than
    the previous SDP from the offerer, or it receives an SDP with a media
    stream in a slot where the port was previously zero, the answerer
    knows that new media streams are being added.  These can be rejected
    or accepted by placing an appropriately structured media description
    in the answer.  The procedures for constructing the new media
    description in the answer are described in Section 6.

This problem is mentioned in:
https://freeswitch.org/jira/browse/FS-7037
https://freeswitch.org/jira/browse/FS-6212

With reversed transmission direction (when FreeSWITCH receives FAX and  
re-INVITES) re-INVITE contains only image media, but this is easier to  
accept (https://freeswitch.org/jira/browse/FS-6954 -  correcting it caused  
interoperability problems between FS versions), while not accepting  
correct SDP by FreeSWITCH is really painful as it requires implementing  
RFC non-compliant negotiation and probably adding special switch in  
configuration to be interoperable.

Is this issue fixed in FreeSWITCH 1.6 (I cannot find any further  
references in jira)?
Could you give me any suggestions where to look in FreeSWITCH source code  
(10k LOC sofia.c seems pretty complex)?

-- 
TMSZ



Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list