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

uuid_kill during att_xfer before target answers does not work

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 1.4.19, 1.4.21, 1.6.0
    • Fix Version/s: None
    • Component/s: mod_dptools
    • Labels:
      None
    • Environment:
      Linux
    • CPU Architecture:
      x86-64
    • Kernel:
      Linux
    • uname:
      Linux sandbox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux
    • Userland:
      GNU/Linux
    • Distribution:
      Debian
    • Distribution Version:
      Debian 8 jessie
    • lsb_release:
      Hide
      No LSB modules are available.
      Distributor ID: Debian
      Description: Debian GNU/Linux 8.2 (jessie)
      Release: 8.2
      Codename: jessie
      Show
      No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.2 (jessie) Release: 8.2 Codename: jessie
    • Compiler:
      gcc
    • Compiler Version:
      gcc version 4.9.2 (Debian 4.9.2-10)
    • FreeSWITCH GIT Revision:
      fbacc27d2984b0356920edcb2d25de5ceb80e27c
    • GIT Master Revision hash::
      fbacc27d2984b0356920edcb2d25de5ceb80e27c
    • Target Version:
      1.6

      Description

      1. You have a call from A to B. B starts an attended transfer to C.
      2. If B hangs up before C answers, the originate towards C continues, and if C eventually picks up, she is bridged with A. It is in effect turned into a blind transfer.

      Our users would like to be able to trigger this programmatically, as we are trying to avoid interacting with the handset as much as possible.

      To that effect, we are issuing a uuid_kill towards B.

      If C has answered, and B and C are in the 'negotiation' phase, this results in B being hung up, and A and C are bridged.

      If C has not answered yet, the HANGUP is issued by FS, but not sent to the SIP client before C answers, after which B is immediately hung up and A and C are connected.

      I have attached a log with siptrace. The events are as follows:

      22:44:59.334571: 1001 presses "1" to start the attended transfer to 1002
      22:45:14.812146: uuid_kill is executed: switch_ivr.c:3946 Hangup sofia/internal/1001@192.168.90.1:63520
      22:45:20.266716: 1002 answers
      22:45:20.289535: A BYE is finally sent to 1001

      I have a minimal configuration reproducing this on latest master: https://github.com/firmafon/fs-att-xfer-uuid-kill

        Attachments

        1. bad.log
          85 kB
        2. bad-3.log
          86 kB

          Activity

            People

            • Assignee:
              anthm Anthony Minessale II
              Reporter:
              vangberg Harry Vangberg
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: