]> git.ipfire.org Git - thirdparty/asterisk.git/commit
sig_analog: Fix broken three-way conferencing.
authorNaveen Albert <asterisk@phreaknet.org>
Fri, 13 May 2022 12:33:21 +0000 (12:33 +0000)
committerKevin Harwell <kharwell@digium.com>
Wed, 15 Jun 2022 18:19:03 +0000 (13:19 -0500)
commit97f278a94abf76773498208c4ca467045fb31df2
treef57d0ad4b9c9f600392c9bb6f1d8fe3f6b93200d
parentcc8e098e1db429bcb2ece2720dee5d0a8bb8416b
sig_analog: Fix broken three-way conferencing.

Three-way calling for analog lines is currently broken.
If party A is on a call with party B and initiates a
three-way call to party C, the behavior differs depending
on whether the call is conferenced prior to party C
answering. The post-answer case is correct. However,
if A flashes before C answers, then the next flash
disconnects B rather than C, which is incorrect.

This error occurs because the subs are not swapped
in the misbehaving case. This is because the flash
handler only swaps the subs if C has answered already,
which is wrong. To fix this, we swap the subs regardless
of whether C has answered or not when the call is
conferenced. This ensures that C is disconnected
on the next hook flash, rather than B as can happen
currently.

ASTERISK-30043 #close

Change-Id: I96c5bf6c9b7eb2636136b716c677c82c079b6f06
channels/sig_analog.c