[Freeswitch-dev] sipX consultative trasnfer to freeswitch Conference leaves a phantom channel
Joegen E. Baclor
joegen at opensipstack.org
Fri Sep 24 16:40:12 PDT 2010
I was recently tasked to investigate an apparent bug in sipX IVR
subsystem that involves consultative transfer. The bug can be
replicated as follows:
1. Extensions 5001 and 5002 are registered to sipX.
2. Extension 65001 is configured as a conference room in freeswitch.
3. Extension 5001 calls 5002 and puts 5002 on hold.
4. Extension 5001 calls 65001 and puts 65001 on hold.
5. Extention 5001 sends REFER with replaces to 5002 towards 65001.
6. Extension 5002 sends INVITE with replaces to 65001
At this point, signaling will be processed as normal. Notifications
from 5002 completing the transfer looks OK and BYE was sent by 5001 to
tear down the original call to which freeswitch politely responded with
200 Ok. Audio between 5002 and and 65001 conference is bidirectional.
However, looking at the status of the conference bridge, there are still
two participants active. The old channel that 5001 opened is still
there. This would eventually timeout after a period of time probably
because of media inactivity.
If you think this is due to the mishandling or misbehavior of the event
socket implemention of the IVR. Eg: It should manually destroy the
channel after receiving a "channel replaced" event from freeswitch, I
would appreciate pointers how it should be done.
If you think this is a bug in freeswitch I am willing to get it patched
if someone already familiar with the code point me to the right places
to look at. (I am new to freeswitch but I'm not new to C nor SIP).
Thanks in advance for any help.
More information about the FreeSWITCH-dev