Uploaded image for project: 'FreeSWITCH'
  1. FreeSWITCH
  2. FS-11572

1-2 second dropped Auto\RTP at the start of every call

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Incomplete
    • Affects Version/s: 1.8.2
    • Fix Version/s: 1.4.26, 1.6.20
    • Component/s: mod_sofia
    • Labels:
      None
    • Environment:
      Debian 9.6
    • CPU Architecture:
      x86-64
    • Kernel:
      Linux
    • uname:
      4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
    • Userland:
      GNU/Linux
    • Distribution:
      Debian
    • Distribution Version:
      Debian 9 Stretch
    • lsb_release:
      Hide
      Distributor ID: Debian
      Description: Debian GNU/Linux 9.6 (stretch)
      Release: 9.6
      Codename: stretch
      Show
      Distributor ID: Debian Description: Debian GNU/Linux 9.6 (stretch) Release: 9.6 Codename: stretch
    • Compiler:
      gcc
    • Compiler Version:
      gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)
    • FreeSWITCH GIT Revision:
      a98a958ac3ea9cff261aabccdc8ef0f71fac9abb
    • GIT Master Revision hash::
      f391645e4f0cbab18ccf56bcea9a6655bccb90e9

      Description

      The first 1-2 seconds of Audio\RTP at the start of every call is dropped on calls between local (no NAT etc) endpoints registered on the same SIP profile.

      When comparing the examples we've noticed the call flow is slightly different on 1.8.2 compared with 1.6.20, as follows.

      FreeSWITCH 1.8.2
      Leg A: switch_channel.c:2249 (sofia/internal/SRC_EXT@DOMAIN:PORT) Callstate Change DOWN -> RINGING
      Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [calling][0]
      Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [proceeding][180]
      Leg B: sofia.c:7401 Ring-Ready sofia/internal/DST_EXT@LAN_IP:PORT!
      Leg B: switch_channel.c:3354 (sofia/internal/DST_EXT@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@DOMAIN:PORT) Callstate Change RINGING -> EARLY
      Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT@DOMAIN:PORT entering state [early][183]
      Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [completing][200]
      Leg B: switch_channel.c:3482 (sofia/internal/DST_EXT@LAN_IP:PORT) Callstate Change RINGING -> EARLY
      Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [ready][200]
      Leg B: sofia.c:8429 Channel [sofia/internal/DST_EXT@LAN_IP:PORT] has been answered
      Leg B: switch_channel.c:3781 (sofia/internal/DST_EXT@LAN_IP:PORT) Callstate Change EARLY -> ACTIVE
      Leg A: switch_ivr_bridge.c:766 Channel [sofia/internal/SRC_EXT@DOMAIN:PORT] has been answered
      Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT@DOMAIN:PORT entering state [completed][200]
      Leg A: switch_channel.c:3781 (sofia/internal/SRC_EXT@DOMAIN:PORT) Callstate Change EARLY -> ACTIVE
      Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT@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@LAN_IP:PORT entering state [calling][0]
      Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT@DOMAIN:PORT entering state [calling][0]
      Leg A: sofia.c:7291 Channel sofia/internal/SRC_EXT@DOMAIN:PORT entering state [ready][200]
      Leg A: sofia.c:8272 Processing updated SDP
      Leg B: sofia.c:7291 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [ready][200]

      FreeSWITCH 1.6.20
      Leg A: switch_channel.c:2249 (sofia/internal/SRC_EXT@DOMAIN:PORT) Callstate Change DOWN -> RINGING
      Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [calling][0]
      Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [proceeding][180]
      Leg B: sofia.c:7192 Ring-Ready sofia/internal/DST_EXT@LAN_IP:PORT!
      Leg B: switch_channel.c:3346 (sofia/internal/DST_EXT@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@DOMAIN:PORT) Callstate Change RINGING -> EARLY
      Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT@DOMAIN:PORT entering state [early][183]
      Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [completing][200]
      Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [ready][200]
      Leg A: switch_channel.c:3773 (sofia/internal/SRC_EXT@DOMAIN:PORT) Callstate Change EARLY -> ACTIVE
      Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT@DOMAIN:PORT entering state [completed][200]
      Leg A: switch_ivr_originate.c:3705 Originate Resulted in Success: [sofia/internal/DST_EXT@LAN_IP:PORT]
      Leg B: switch_channel.c:3773 (sofia/internal/DST_EXT@LAN_IP:PORT) Callstate Change RINGING -> ACTIVE
      Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT@DOMAIN:PORT entering state [ready][200]
      Leg B: Channel sofia/internal/DST_EXT@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@LAN_IP:PORT entering state [calling][0]
      Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT@DOMAIN:PORT entering state [calling][0]
      Leg A: sofia.c:7084 Channel sofia/internal/SRC_EXT@DOMAIN:PORT entering state [ready][200]
      Leg A: sofia.c:8061 Processing updated SDP
      Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT@LAN_IP:PORT entering state [completing][200]
      Leg B: sofia.c:7084 Channel sofia/internal/DST_EXT@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

      This has also been tested on Debian 8.11 (Linux Kernel 3.16) which produces the same results. This problem does not occur on FreeSWITCH 1.6.20 or 1.4.26 using identical configuration.

      This has also been tested on FreeSWITCH Master (1.9.0) which produces the same results.

        Attachments

          Activity

            People

            • Assignee:
              mikej Mike Jerris
              Reporter:
              shaun.stokes@itec-support.co.uk Shaun Stokes
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: