[Freeswitch-users] FreeSWITCH 1.8.2 - 1-2 second dropped Audio\RTP at the start of a call

Shaun Stokes shaun.stokes at itec-support.co.uk
Mon Dec 17 15:18:14 UTC 2018


We reverted back to FreeSWITCH 1.6.20 but when this is compiled on the Debian 9 server the problem still occurs.


We had to workaround some build errors for FS 1.6.20 to compile on Debian 9 with PostgreSQL 11 but the problem was still present, as follows.

--------------------

# Uninstall 1.1.0 SSL header files (libssl-dev) and install the older ones (libssl1.0-dev).
apt-get install libssl1.0-dev

# Fix PGSQL 11 Support
In the file:
/usr/src/freeswitch/srcswitch_pgsql.c
On line 389, replace this:
#if POSTGRESQL_MAJOR_VERSION >= 9 && POSTGRESQL_MINOR_VERSION >= 2
With:
#if (POSTGRESQL_MAJOR_VERSION == 9 && POSTGRESQL_MINOR_VERSION >= 2) || POSTGRESQL_MAJOR_VERSION > 9

# Do not build mod_flite or mod_enum
sed -i /usr/src/freeswitch/modules.conf -e s:'asr_tts/mod_flite:#asr_tts/mod_flite:'
sed -i /usr/src/freeswitch/modules.conf -e s:'applications/mod_enum:#applications/mod_enum:'
--------------------

We took the FS 1.6.20 binaries (pre-compiled) from a Debian 8 server and restored them to our Debian 9 server which resolved the issue but we had to copy some missing libs from a Debian 8 server:
/usr/lib/x86_64-linux-gnu/libssl.so.1.0.0
/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0

Given that the problem changes when the source-code is compiled on different servers we suspect this may be a package problem not specific to FreeSWITCH.

This is also a problem on master, raised JIRA: https://freeswitch.org/jira/browse/FS-11572


________________________________
From: FreeSWITCH-users <freeswitch-users-bounces at lists.freeswitch.org> on behalf of Shaun Stokes <shaun.stokes at itec-support.co.uk>
Sent: 14 December 2018 13:16:14
To: FreeSWITCH Users Help
Subject: Re: [Freeswitch-users] FreeSWITCH 1.8.2 - 1-2 second dropped Audio\RTP at the start of a call

Correction, we had moved FreeSWITCH 1.4 (not 1.8) to Server 1 which worked without any audio delays. Upon testing FreeSWITCH 1.8 on Server 1 there is a 1-2 second delay before RTP is established once the call is answered.

This is a FreeSWITCH 1.8.2 issue, not a Debian 9 specific (also occurs on Debian 8). FreeSWITCH 1.6 and 1.4 are not effected using the same configuration through-out.
________________________________
From: Shaun Stokes
Sent: 14 December 2018 11:44:18
To: FreeSWITCH Users Help
Subject: Re: [Freeswitch-users] FreeSWITCH 1.8.2 - 1-2 second dropped Audio\RTP at the start of a call

We have built two test servers side by side on the same hardware with the same configuration, as follows.
Server 1: Debian 8 with FreeSWITCH 1.6.20
Server 2: Debian 9 with FreeSWITCH 1.8.2

We can replicate the 1-2 second delay on Server 2 only, whereas Server 1 provides near instant RTP in both directions upon answer. Interestingly, if we move FreeSWITCH 1.8.2 from Server 2 to Server 1 there are still no issues with delay on Server 1, the problem is only observable on the Server 2 running Debian 9 so the problem is not specifically related to FreeSWITCH 1.8.2.

At this stage it seems likely the issue lies with Debian 9 or the change in packages on Debian 9.

Thanks,
Shaun
________________________________
From: FreeSWITCH-users <freeswitch-users-bounces at lists.freeswitch.org> on behalf of Shaun Stokes <shaun.stokes at itec-support.co.uk>
Sent: 11 December 2018 15:28:33
To: FreeSWITCH Users Help
Subject: [Freeswitch-users] FreeSWITCH 1.8.2 - 1-2 second dropped Audio\RTP at the start of a call


Hi All,


Since we've been using FreeSWITCH 1.8.2 we've noticed that the first 1-2 seconds of Audio\RTP at the start of the call when the call is answered is now dropped\missing but this doesn't occur on 1.6.20. When comparing the examples we've noticed the call flow is slightly different, as follows.


FreeSWITCH 1.8.2

Leg A: switch_channel.c:2249 (sofia/internal/SRC_EXT at DOMAIN:PORT) Callstate Change DOWN -> RINGING
Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [calling][0]
Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [proceeding][180]
Leg B: sofia.c:7401 Ring-Ready sofia/internal/DST_EXT at LAN_IP:PORT!
Leg B: switch_channel.c:3354 (sofia/internal/DST_EXT at LAN_IP:PORT) Callstate Change DOWN -> RINGING
Leg A: switch_ivr_originate.c:1246 Sending early media
Leg A: switch_channel.c:3482 (sofia/internal/SRC_EXT at DOMAIN:PORT) Callstate Change RINGING -> EARLY
Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [early][183]
Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [completing][200]
Leg B: switch_channel.c:3482 (sofia/internal/DST_EXT at LAN_IP:PORT) Callstate Change RINGING -> EARLY
Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [ready][200]
Leg B: sofia.c:8429 Channel [sofia/internal/DST_EXT at LAN_IP:PORT] has been answered
Leg B: switch_channel.c:3781 (sofia/internal/DST_EXT at LAN_IP:PORT) Callstate Change EARLY -> ACTIVE
Leg A: switch_ivr_bridge.c:766 Channel [sofia/internal/SRC_EXT at DOMAIN:PORT] has been answered
Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [completed][200]
Leg A: switch_channel.c:3781 (sofia/internal/SRC_EXT at DOMAIN:PORT) Callstate Change EARLY -> ACTIVE
Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [ready][200]
Leg A: switch_ivr_async.c:1500 No silence detection configured; assuming start of speech
Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [calling][0]
Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [calling][0]
Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [ready][200]
Leg A: sofia.c:8272 Processing updated SDP
Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [ready][200]


FreeSWITCH 1.6.20

Leg A: switch_channel.c:2249 (sofia/internal/SRC_EXT at DOMAIN:PORT) Callstate Change DOWN -> RINGING
Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [calling][0]
Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [proceeding][180]
Leg B: sofia.c:7192 Ring-Ready sofia/internal/DST_EXT at LAN_IP:PORT!
Leg B: switch_channel.c:3346 (sofia/internal/DST_EXT at LAN_IP:PORT) Callstate Change DOWN -> RINGING
Leg A: switch_ivr_originate.c:1215 Sending early media
Leg A: switch_channel.c:3474 (sofia/internal/SRC_EXT at DOMAIN:PORT) Callstate Change RINGING -> EARLY
Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [early][183]
Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [completing][200]
Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [ready][200]
Leg A: switch_channel.c:3773 (sofia/internal/SRC_EXT at DOMAIN:PORT) Callstate Change EARLY -> ACTIVE
Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [completed][200]
Leg A: switch_ivr_originate.c:3705 Originate Resulted in Success: [sofia/internal/DST_EXT at LAN_IP:PORT]
Leg B: switch_channel.c:3773 (sofia/internal/DST_EXT at LAN_IP:PORT) Callstate Change RINGING -> ACTIVE
Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [ready][200]
Leg B: Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [ready][200]
Leg A: switch_ivr_async.c:1500 No silence detection configured; assuming start of speech
Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [calling][0]
Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [calling][0]
Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT at DOMAIN:PORT entering state [ready][200]
Leg A: sofia.c:8061 Processing updated SDP
Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [completing][200]
Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT at LAN_IP:PORT entering state [ready][200]


On 1.6.20 Leg B changes straight from RINGING to ACTIVE, but on 1.8.2 Leg B first changes from RINGING to EARLY then EARLY to ACTIVE, not sure if this could be related.


We've experimented with the following to no avail.
rtp-rewrite-timestamps
send_silence_when_idle
fsctl sync_clock
suppress_cng
ignore_early_media

As per:
https://freeswitch.org/confluence/display/FREESWITCH/RTP+Issues
https://freeswitch.org/confluence/display/FREESWITCH/VAD+and+CNG
https://freeswitch.org/confluence/display/FREESWITCH/send_silence_when_idle
https://freeswitch.org/confluence/display/FREESWITCH/Early+Media


The calls are local between two extensions\endpoints on the same FreeSWITCH instance and the same SIP profile, the SIP profiles on both servers (1.6.20 and 1.8.2) are identical.


Does anyone have any ideas?


Thanks,

Shaun
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20181217/a9b294b5/attachment-0001.html>


More information about the FreeSWITCH-users mailing list