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

Order of codecs can cause loss of RTP stream

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.6
    • Fix Version/s: None
    • Component/s: mod_conference
    • Labels:
      None
    • CPU Architecture:
      x86-64
    • Kernel:
      Linux
    • uname:
      Linux drum.vhost 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
    • Userland:
      GNU/Linux
    • Distribution:
      CentOS
    • Distribution Version:
      CentOS 7
    • lsb_release:
      -bash: lsb_release: command not found
    • Compiler:
      gcc
    • Compiler Version:
      gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9)
    • FreeSWITCH GIT Revision:
      FreeSWITCH Version 1.7.0+git~20151006T021930Z~132564f071~64bit (git 132564f 2015-10-06 02:19:30Z 64bit)
    • GIT Master Revision hash::
      FreeSWITCH Version 1.7.0+git~20151006T021930Z~132564f071~64bit (git 132564f 2015-10-06 02:19:30Z 64bit)

      Description

      This problem had me scratching my head for quite a while!!

      I noticed that, when calling a FreeSWITCH from LinPhone on PC A, after the member has joined the conference then no further announcements could be heard. (Annoucenments before the member joined the conference can be heard fine.) Looking at the Wireshark trace I could determine that FreeSWITCH stops sending the RTP stream after the conference join. After 30 seconds LinPhone would timeout and terminate the call.

      However, when calling the same FreeSWITCH from LinPhone on PC B, everything was working fine!

      Comparing the logs I determined that the order of the codecs was the difference between PC A and PC B. PC A had the Opus codec specified first in the SDP, while PC B had the PCMU codec first. I proved this by changing the order of the codecs on PC A and this caused the call to work as expected.

      I attach two logs each containing a call from PC A: working.log has the PCMU codec first and continues the RTP stream after the conference join. failing.log has the Opus codec first and stops the RTP stream.

      I think the RTP stream should be continued after the conference join whatever the ordering of the codecs.

      (NB. The FreeSWITCH configuration I used does contain a couple of our custom mods but I don't think these cause the problem.)

        Attachments

        1. dialplan.log
          166 kB
        2. failing.log
          450 kB
        3. failing.log
          74 kB
        4. failing.log
          67 kB
        5. linphone.log
          68 kB
        6. moh-failure.log
          428 kB
        7. moh-success.log
          70 kB
        8. unmute-member.log
          642 kB
        9. uuid_dump.txt
          15 kB
        10. waste-resources.log
          472 kB
        11. working.log
          509 kB
        12. working.log
          74 kB
        13. working.log
          74 kB

          Activity

            People

            • Assignee:
              anthm Anthony Minessale II
              Reporter:
              rscreene Richard Screene
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: