[Freeswitch-users] Calls dropping due to SDP change

Nicola von Thadden nico at vthadden.de
Sat Dec 26 16:56:59 UTC 2020


Hi,

I'm currently investigating reproducable call drops when calling
mobile-phone numbers from Deutsche Telekom (T-Mobile Germany).
My provider has a NGN (SIP) Interconnection with Deutsche Telekom and is
transparend for the messages involved here (although IP rewriting is
happening).

The calls contain following SDP in the invite from my FreeSwitch towards
my provider:
v=0                                                                                                                                                                                                                                                                                                                         

o=FreeSWITCH 1608967203 1608967204 IN IP4 *redacted*
                                                                                                                                                                                                                                                                    

s=FreeSWITCH                                                                                                                                                                                                                                                                                                                

c=IN IP4  *redacted*
                                                                                                                                                                                                                                                                                                  

t=0
0                                                                                                                                                                                                                                                                                                                       

m=audio 32256 RTP/AVP 9 8 0
101                                                                                                                                                                                                                                                                                             

a=rtpmap:9
G722/8000                                                                                                                                                                                                                                                                                                        

a=rtpmap:8
PCMA/8000                                                                                                                                                                                                                                                                                                        

a=rtpmap:0
PCMU/8000                                                                                                                                                                                                                                                                                                        

a=rtpmap:101
telephone-event/8000                                                                                                                                                                                                                                                                                           

a=fmtp:101
0-16                                                                                                                                                                                                                                                                                                             

a=ptime:20  

Once the call is established, FS sends a re-invite after 50% of the
expiration timer is elapsed, 15 minutes in this case. The re-invite
contains a slightly modified SDP:
v=0                                                                                                                                                                                                                                                                                                                         

o=FreeSWITCH 1608967203 1608967204 IN IP4
*redacted*                                                                                                                                                                                                                                                                     

s=FreeSWITCH                                                                                                                                                                                                                                                                                                                

c=IN IP4
*redacted*                                                                                                                                                                                                                                                                                                      

t=0
0                                                                                                                                                                                                                                                                                                                       

m=audio 32256 RTP/AVP 8 101 9
0                                                                                                                                                                                                                                                                                             

a=rtpmap:8
PCMA/8000                                                                                                                                                                                                                                                                                                        

a=rtpmap:101
telephone-event/8000                                                                                                                                                                                                                                                                                           

a=fmtp:101
0-16                                                                                                                                                                                                                                                                                                             

a=rtpmap:9
G722/8000                                                                                                                                                                                                                                                                                                        

a=rtpmap:0
PCMU/8000                                                                                                                                                                                                                                                                                                        

a=ptime:20   

The new codec on position 1 (PCMA) is not necessary the chosen one for
the session, that call was using G.722 (verified via 'show channels').

Telekom does not like my SDP change and responds with:
SIP/2.0 488 SDP Parameter Error In SIP
Request                                                                                                                                                                                                                                                                              


The freeswitch console only logs:
2020-12-26 16:32:49.578925 [DEBUG] sofia.c:7326 Channel
sofia/external/*redacted*entering state [calling][0]
2020-12-26 16:32:49.618925 [DEBUG] sofia.c:7319 Channel
sofia/external/*redacted* skipping state [ready][488]

The call is disconnected 15 minutes later because the session timer has
expired:
2020-12-26 16:47:53.838925 [NOTICE] sofia.c:1089 Hangup
sofia/external/*redacted* [CS_EXCHANGE_MEDIA] [NORMAL_CLEARING]

This does not happen when I only allow PCMA (or any other codec) since
the SDP can't get mixed up.

I have reproduced that behaviour with
1.10.5~release~6~25569c1631~buster-1~buster+1 and
1.6.20~37~987c9b9-1~jessie+1.

Do you have any idea why FS changes the SDP (without reason?) and what I
can do about it?

Thanks
Nico



More information about the FreeSWITCH-users mailing list