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

Incorrect output of 'verto status' and 'verto xmlstatus' commands.

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: New
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 1.8.2
    • Fix Version/s: None
    • Component/s: mod_verto
    • Labels:
      None
    • Environment:
      Debian 8
    • CPU Architecture:
      x86-64
    • Kernel:
      Linux
    • Userland:
      GNU/Linux
    • Distribution:
      Debian
    • Distribution Version:
      Debian 8 jessie
    • Compiler:
      gcc
    • FreeSWITCH GIT Revision:
      FreeSWITCH Version 1.9.0+git~20181129T182719Z~362c5f8b22~64bit (git 362c5f8 2018-11-29 18:27:19Z 64bit)
    • GIT Master Revision hash::
      362c5f8b2285bc8ead91d328729bf7f5922c9ff8

      Description

      The output for 'verto status' looks like:
      freeswitch@site> verto status
                           Name Type Data State
      =================================================================================================
                     default-v4 profile ws:someip:8081 RUNNING
                     default-v4 profile wss:someip:8082 RUNNING
      default-v4::Alice@somesite client mobile_ip_1:48859 CONN_REG (WSS)
      default-v4::Alice@somesite client mobile_ip_2:5876 CONN_REG (WSS)
      =================================================================================================
      1 profile , 2 clients

      This could be reproduced with following scenario:
      1) Login to verto, using client which runs on mobile OS (Android was used)
      2) Switch mobile radio interface off
      3) Switch mobile radio interface on
      4) Relogin to verto


      IIUC, after mobile's radio module on/off cycle, in a following relogin attempt, mobile network operator assigns new ('white') ip address (mobile_ip_2, see output above) for outgoing mobile connection. This new connection contains previously used session_id, hence mod_verto tries to drop previous socket (which is on mobile_ip_1), sending verto.punt to mobile_ip_1. But at this point all packets from FS to mobile_ip_1 are silently dropped by mobile operator, which leads to FS OS TCP stack retransmissions, and not closing socket for some time. Both 'verto status' and 'verto xmlstatus' iterate over socket list, which contains both sockets : new and old. Which leads to erroneous duplicated output.

      Proposed solution (attached file mod_verto.patch) is to account for jsock struct field 'drop' which is set to true when new connection for an existing session detected.

        Attachments

          Activity

            People

            • Assignee:
              mikej Mike Jerris
              Reporter:
              pavelb Pavel Balashov
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated: