[Freeswitch-users] 'Call Pickup', replaces headers.. does FS handle them properly?

Benjamin Cropley benjamin.cropley at gmail.com
Wed Apr 20 17:10:36 MSD 2016

According to sect. 7.1 of  https://www.ietf.org/rfc/rfc3891.txt, when an
INVITE is recieved with a replaces header, containing the call-id of
another dialog, the receiving party needs to respond immediately with a
200OK containing the new INVITES call-id and cancelling the other call-id.
In the below, Alice calls Bobs Desk but he's not there. He's in his lab,
and hears the Desk ring, so does a dialoginfo call pickup..

                              Bob                      Bob
       Alice                  desk                     lab
        |                       |                        |
    *1  |-----INVITE----------->|                        |
    *2  |<----180---------------|  Bob hears desk phone  |
        |                       |  ringing from lab but  |
        |                       |  isn't REGISTERed yet  |
        |                       |                        |
        |                       |<--fetch dialog state --|
        |                       |---response ----------->|
   *3/4 |<-----INVITE with Replaces/200/ACK--------------|
   *5/6 |------CANCEL/200------>|                        |
   *7   |<-----487--------------|                        |
        |------ACK------------->|                        |
        |                       |                        |
        |                       |                        |
I have a setup of OpenSIPS and FreeSWITCH. OpenSIPS loadbalances all
INVITES to FreeSWITCH, and then any subsequent packets are just relayed on
as a stateful proxy. With that in mind, see what happens if I try do the
https://pastebin.freeswitch.org/24660 - sip trace of..
1. Alice calls bobs desk
2. Bobs desk rings
3. Bobs lab tries to pick up the call, so that bobs lab is the one speaking
to alice and bobs desk stops ringing
4. Instead, Alice gets cut off and bobs desk ends up speaking to bob lab

https://pastebin.freeswitch.org/24650 - FS logs of this issue

As you can see, on line 19, Bobs lab sends an INVITE with a callid matching
that of the one Alice established... FS sends a 200OK back.. All good so
far. At this point I logically feel FS would then send a 200OK to the a
dialog/Alice and bridge the two.. but instead it kills the dialog with
alice and takes place directly with bobs desk..

tl;dr is FS handing replaces correctly here?

Any advice would be much appreciated.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20160420/227d4c2f/attachment.html 

Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list