[Freeswitch-users] Having a problem with attended transfer when FS is the transfer target

Mardy Marshall mardy at voysys.com
Wed Apr 28 09:30:50 PDT 2010


I tried a new build created from git-head and the situation seems to have gotten worse.  In my actual application, which is using the mod_event_socket API to communicate with FreeSwitch, I no longer receive any events indicating that a transfer of the call has occurred.  Also both call legs remain active as FreeSWITCH never terminates the original call leg created for the transfer consultation.

Prior to these latest changes, this is what I would observe:

The station initiating the transfer would dial the destination extension, for example, extension 300, which is then redirected to FreeSWITCH.  FreeSWITCH is configured with the following dialplan entry:

    <extension name="park">
      <condition field="destination_number" expression="^300$">
        <action application="socket" data="192.168.0.16:8086 async full"/>
      </condition>
    </extension>

This initial "consultation" call will then launch my application which will communicate with FreeSWITCH via an outbound event socket connection.  Later,when the station being transferred sends the INVITE w/Replaces to FreeSWITCH, FS would then create a new UUID and bridge that to the original UUID associated with the initiating call leg.  In response to this, FS sends the application a uuid_bridge event which contains the other UUID.  From the application side, I am able to respond to this uuid_bridge event and redirect the application to the new call leg.  The problem is that the original call leg does not get terminated by FS and I haven't been able to terminate it via the API without ending up shutting down the whole session.  To make matters worse, because FS did not terminate the original call leg, the station that initiated the transfer thinks that the transfer failed and sends a BYE to FS which then kills the session and drops the call.  Yuck...

-Mardy



On Apr 27, 2010, at 3:43 PM, Anthony Minessale wrote:

> The problem here is that you were testing it against a 1 legged call (echo application is not bridged to anything)
> 
> This code is usually only encountered when replacing a leg of a call.
> 
> try git rev [8660b6f] or better
> 
> I added a patch so the new channel executes the same app that the old was originally executing and hangs up on the original.
> 
> Note, if you want the transferred call to pick up on the other call to the application in-progress you would have to loop the original call.
> 
> 
> 
> 
> On Tue, Apr 27, 2010 at 11:03 AM, Mardy Marshall <mardy at voysys.com> wrote:
> The REFER exchange occurs on the other side of the proxy between the two Polycom phones.  Since
> FreeSWITCH is the destination of the transfer, it will only see the INVITE w/Replaces.  I've sent you the
> PCAP file which captures the complete SIP exchange.  That should help to clarify.
> 
> -Mardy
> 
> On Apr 27, 2010, at 11:47 AM, Anthony Minessale wrote:
> 
>> There is no sign of a REFER packet or anything indicating an attended transfer in this trace.
>> Did you send the wrong one possibly?
>> 
>> 
>> On Mon, Apr 26, 2010 at 2:50 PM, Mardy Marshall <mardy at voysys.com> wrote:
>> Here is the setup that was used to reproduce the consultative transfer problem.
>> 
>> There are two boxes, the first is running a proxy based PBX (sipXecs) and the
>> second is running FreeSWITCH 1.0.6.  The PBX has two Polycom phones, extension
>> 200 and 202, registered with it.  The PBX has configured a mapping rule which
>> will transform requests to extension 9996 to sip:9996 at 192.168.0.16:5060 which
>> is the address of the second box running FreeSWITCH.  FreeSWITCH has been
>> configured to allow connections from the PBX box via an ACL configuration and
>> the public dialplan includes an "echo" extension:
>> 
>>     <extension name="echo">
>>       <condition field="destination_number" expression="^9996$">
>>         <action application="answer"/>
>>         <action application="echo"/>
>>       </condition>
>>     </extension>
>> 
>> Any of the phones registered with the PBX can dial extension 9996 and be
>> connected to the FreeSWITCH echo application.  But when one phone attempts
>> to transfer another phone to extension 9996 via a consultative transfer,
>> FreeSWITCH does not properly complete the transfer.  You can see in the log
>> at 18:55:58.4295322851 the INVITE w/Replaces is being sent to FreeSWITCH.
>> FreeSWITCH accepts the INVITE but never sends a BYE to the phone which
>> initiated the transfer.  Without that terminating BYE, the transfer
>> controller thinks that the transfer failed.
>> 
>> The corresponding FreeSWITCH log file - http://pastebin.freeswitch.org/12806
>> 
>> If it will help, I can also forward a corresponding PCAP file.
>> 
>> Thanks
>> 
>> -Mardy
>> 
>> On Apr 21, 2010, at 11:23 AM, Anthony Minessale wrote:
>> 
>>> I'm trying to understand this:
>>> 
>>> If FS is acting as a phone in your scenario why are you sending a refer to it and not the server?
>>> In most situations there is a b2bua server who routes the calls and takes all the REFER.
>>> Is this one of those PROXY only sip servers?
>>> 
>>> I think you would need to produce a full debug log of this, and if you are using some kind of proxy based setup we would need some way to easily reproduce it or visit your lab because we do not typically use anything of the sort.
>>> 
>>> Execute these commands and reproduce it and capture the whole log and put it on
>>> http://pastebin.freeswitch.org
>>> 
>>> sofia profile internal siptrace on
>>> console loglevel debug
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Wed, Apr 21, 2010 at 9:13 AM, Anthony Minessale <anthony.minessale at gmail.com> wrote:
>>> instead of emailing again when impatient for an answer (something we frown upon here in this busy list) 
>>> produce a reproducible step by step process to duplicate your issue.  We are trying to help people but we don't have the time to do the leg work for everyone who asks a question when we get hundreds of emails a day.
>>> 
>>> 
>>> 
>>> 
>>> On Wed, Apr 21, 2010 at 9:01 AM, Mardy Marshall <mardy at voysys.com> wrote:
>>> Just following up...  Does anyone have any suggestions on how to proceed with this?  I've run out of ideas.
>>> 
>>> Thanks,
>>> 
>>> -Mardy
>>> 
>>> On Apr 19, 2010, at 8:21 PM, Mardy Marshall wrote:
>>> 
>>>> The phones that I am using are not registered with FS.  They are registered with another proxy based PBX.  I am simply using FS as B2BUA which is also registered with the PBX.  And yes, I can successfully transfer a call to another phone with this setup.
>>>> 
>>>> To simplify things I tried the same scenario using FSComm in place of my own FS application and tried to transfer a call to FSComm with the same results.  And just in case there might be a problem specific to FSComm, I set up a clean install of FS 1.0.6 and tried transferring a call to the FS echo application with the same results.  By the way, I have no problems with blind transfers, only attended transfers.
>>>> 
>>>> -Mardy
>>>> 
>>>> On Apr 19, 2010, at 7:53 PM, Anthony Minessale wrote:
>>>> 
>>>>> did you try just setting up 2 phones on plain fresh FS install, and calling them normally and transferring them around?
>>>>> That description is still pretty vague? What is an Event Socket application, which has nothing to do with sip and sip transfers, that's a FS protocol.
>>>>> 
>>>>> 
>>>>> On Mon, Apr 19, 2010 at 6:33 PM, Mardy Marshall <mardy at voysys.com> wrote:
>>>>> I have two phones (Polycom) and an event_socket application, all of which are using a SIP proxy for call routing.  The first phone calls the second phone.  The second phone then attempts to transfer the call to the FS/event_socket application by first placing the call on hold and then calling the FS application, followed by a consultative transfer.  The REFER dialog occurs between the two phones and an INVITE w/Replaces is sent to FS.  The transferred call leg appears to be answered by FS and the application receives a uuid_bridge event with the UUID of the new call leg.  The problem that I see is that the original call leg, created when the user called the FS application to announce the transfer, does not get canceled by FS and subsequently does not send the BYE back to the Polycom.  Is there something that I need to do at the event_socket application to complete the transfer?  I've tried killing the UUID associated with the first call leg as well as issuing an "answer" command to the transferred call leg UUID, but no luck.
>>>>> 
>>>>> -Mardy
>>>>> 
>>>>> 
>>>>> On Apr 19, 2010, at 6:19 PM, Anthony Minessale wrote:
>>>>> 
>>>>>> but what is the client sending the REFER?
>>>>>> 
>>>>>> FS gets refer+replaces all the time, if it's the one where the dest is on another box (aka the nightmare xfer that you should see references to in the debug log if so) then it will not complete until that far end call is answered.
>>>>>> 
>>>>>> FS handles this scenerio for us hundreds of times a day using a wide range of sip devices so perhaps
>>>>>> your UA has an interop problem.
>>>>>> 
>>>>>> 
>>>>>> On Mon, Apr 19, 2010 at 4:47 PM, Mardy Marshall <mardy at voysys.com> wrote:
>>>>>> 
>>>>>> On Apr 19, 2010, at 5:12 PM, João Mesquita wrote:
>>>>>> 
>>>>>>> uuid_simplify will issue the refer...
>>>>>> 
>>>>>> I looked at uuid_simplify and if I understand it correctly it is for use when one wants to act as the transfer controller.  In my case, FS is the transfer destination.  Another phone has already generated the refer and FS has been sent an invite with replaces.
>>>>>> 
>>>>>>> 
>>>>>>> May I ask what application you are developing?
>>>>>> 
>>>>>> An ACD.
>>>>>> 
>>>>>>> 
>>>>>>> Regards,
>>>>>>> João Mesquita
>>>>>>> FSComm developer
>>>>>>> 
>>>>>>> 
>>>>>>> On Mon, Apr 19, 2010 at 11:27 AM, Mardy Marshall <mardy at voysys.com> wrote:
>>>>>>> I'm having a problem with attended transfers where the destination of the transfer is a FreeSWITCH based application such as FSComm.  (It should be noted that in my setup the phone performing the transfer and the caller which is being transferred are parties of another SIP server.)  What I see, from a SIP signaling standpoint, is that after FreeSWITCH receives and acknowledges the INVITE w/Replaces it does not terminate the initial call leg by sending a BYE to the transfer controller.  From the FreeSWITCH application side, FS still thinks that both the initial call leg and transferred call leg are active.  I experimented with trying to explicitly terminate the initial call leg by using uuid_kill, but this caused FS to kill all legs of the call.  Is there a specific action that the application must take in order for the transfer to complete?
>>>>>>> 
>>>>>>> -Mardy
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> FreeSWITCH-users mailing list
>>>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>>>> http://www.freeswitch.org
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> FreeSWITCH-users mailing list
>>>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>>>> http://www.freeswitch.org
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> FreeSWITCH-users mailing list
>>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>>> http://www.freeswitch.org
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> -- 
>>>>>> Anthony Minessale II
>>>>>> 
>>>>>> FreeSWITCH http://www.freeswitch.org/
>>>>>> ClueCon http://www.cluecon.com/
>>>>>> Twitter: http://twitter.com/FreeSWITCH_wire
>>>>>> 
>>>>>> AIM: anthm
>>>>>> MSN:anthony_minessale at hotmail.com
>>>>>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>>>>>> IRC: irc.freenode.net #freeswitch
>>>>>> 
>>>>>> FreeSWITCH Developer Conference
>>>>>> sip:888 at conference.freeswitch.org
>>>>>> googletalk:conf+888 at conference.freeswitch.org
>>>>>> pstn:+19193869900
>>>>>> _______________________________________________
>>>>>> FreeSWITCH-users mailing list
>>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>>> http://www.freeswitch.org
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> FreeSWITCH-users mailing list
>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>> http://www.freeswitch.org
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Anthony Minessale II
>>>>> 
>>>>> FreeSWITCH http://www.freeswitch.org/
>>>>> ClueCon http://www.cluecon.com/
>>>>> Twitter: http://twitter.com/FreeSWITCH_wire
>>>>> 
>>>>> AIM: anthm
>>>>> MSN:anthony_minessale at hotmail.com
>>>>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>>>>> IRC: irc.freenode.net #freeswitch
>>>>> 
>>>>> FreeSWITCH Developer Conference
>>>>> sip:888 at conference.freeswitch.org
>>>>> googletalk:conf+888 at conference.freeswitch.org
>>>>> pstn:+19193869900
>>>>> _______________________________________________
>>>>> FreeSWITCH-users mailing list
>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>> http://www.freeswitch.org
>>>> 
>>>> _______________________________________________
>>>> FreeSWITCH-users mailing list
>>>> FreeSWITCH-users at lists.freeswitch.org
>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>> http://www.freeswitch.org
>>> 
>>> 
>>> _______________________________________________
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Anthony Minessale II
>>> 
>>> FreeSWITCH http://www.freeswitch.org/
>>> ClueCon http://www.cluecon.com/
>>> Twitter: http://twitter.com/FreeSWITCH_wire
>>> 
>>> AIM: anthm
>>> MSN:anthony_minessale at hotmail.com
>>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>>> IRC: irc.freenode.net #freeswitch
>>> 
>>> FreeSWITCH Developer Conference
>>> sip:888 at conference.freeswitch.org
>>> googletalk:conf+888 at conference.freeswitch.org
>>> pstn:+19193869900
>>> 
>>> 
>>> 
>>> -- 
>>> Anthony Minessale II
>>> 
>>> FreeSWITCH http://www.freeswitch.org/
>>> ClueCon http://www.cluecon.com/
>>> Twitter: http://twitter.com/FreeSWITCH_wire
>>> 
>>> AIM: anthm
>>> MSN:anthony_minessale at hotmail.com
>>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>>> IRC: irc.freenode.net #freeswitch
>>> 
>>> FreeSWITCH Developer Conference
>>> sip:888 at conference.freeswitch.org
>>> googletalk:conf+888 at conference.freeswitch.org
>>> pstn:+19193869900
>>> _______________________________________________
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>> 
>> 
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>> 
>> 
>> 
>> 
>> -- 
>> Anthony Minessale II
>> 
>> FreeSWITCH http://www.freeswitch.org/
>> ClueCon http://www.cluecon.com/
>> Twitter: http://twitter.com/FreeSWITCH_wire
>> 
>> AIM: anthm
>> MSN:anthony_minessale at hotmail.com
>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>> IRC: irc.freenode.net #freeswitch
>> 
>> FreeSWITCH Developer Conference
>> sip:888 at conference.freeswitch.org
>> googletalk:conf+888 at conference.freeswitch.org
>> pstn:+19193869900
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
> 
> 
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
> 
> 
> 
> 
> -- 
> Anthony Minessale II
> 
> FreeSWITCH http://www.freeswitch.org/
> ClueCon http://www.cluecon.com/
> Twitter: http://twitter.com/FreeSWITCH_wire
> 
> AIM: anthm
> MSN:anthony_minessale at hotmail.com
> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> IRC: irc.freenode.net #freeswitch
> 
> FreeSWITCH Developer Conference
> sip:888 at conference.freeswitch.org
> googletalk:conf+888 at conference.freeswitch.org
> pstn:+19193869900
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20100428/eafcd83f/attachment-0001.html 


More information about the FreeSWITCH-users mailing list