[pjsip] 3PCC transfer implementation
Anshuman S. Rawat
arawat at 3clogic.com
Wed Nov 14 04:10:08 EST 2007
Thanks for the input. We have decided to do things in pjsua_lib. This is
what we plan to do:
- Add a few functions to handle responses for '3pcc INVITE' (differentiating
them from responses to regular INVITEs using a flag) and add an argument to
pjsua_call_make_call() which will take care of sending an INVITE w/o SDP.
Functionality for this exists currently though in the form of a macro and
not an argument.
- Move responsibility of sending ACKs to '200 OK' responses to pjsua_lib.
- For handling re-INVITE scenario within the 3PCC 'call' we plan to add
another callback which will be called upon receiving a re-INVITE. Return
status from this callback will decide if we needed to follow the 'normal
path' (one w/o 3PCC).
This looks much less complicated than having to add another module.
----- Original Message -----
From: "Benny Prijono" <bennylp at pjsip.org>
To: "pjsip embedded/DSP SIP discussion" <pjsip at lists.pjsip.org>
Sent: Tuesday, November 13, 2007 9:04 PM
Subject: Re: [pjsip] 3PCC transfer implementation
> Hi Anshuman,
> this is currently pretty hard to achieve with pjsip, as ACK will be
> sent automatically by the invite session layer upon receiving 2xx
> response. But I like your idea to add the ability to disable this
> automatic ACK sending and enabling application to send it manually,
> so maybe we can elaborate more on this. Can you explain more on why
> did you think this approach is not very extensible?
> As for REFER, it should reach the application. Have a look at
> on_call_transfered() function in pjsua_call.c. Basically application
> just need to implement on_tsx_state_changed() callback of the invite
> session and listen for incoming REFER. The stack below pjsua-lib
> layer does not handle REFER automatically.
> Btw, just to clarify, you will be using pjsip instead of pjsua-lib,
> I'm not too sure about implementing 3PCC module, by-passing the
> invite layer. This sounds like re-inventing the invite layer to me
> (which means loads of work!).
> Anshuman S. Rawat wrote:
>> Hi All,
>> We want to add 3PCC call transfer support in PJSIP as a part of our
>> requirement. We wanted to get pointers as to where would be the best
>> to do this. We thought of 2 ways to do this. In bout cases, we
>> act as the controller (a B2BUA).
>> - One way would be to do so from our application wherein we disable
>> 'ACK' from the stack and pass that job to the application. Our
>> receives all the requests and responses and sends out requests and
>> (after necessary SDP modifications). This looks simpler to implement but
>> doesn't look very extendible. As in, for our requirement, the transferee
>> want to transfer the call and send a REFER for that purpose. This REFER
>> should reach our B2BUA who then sends the new INVITE instead of stack
>> it. This will require more change to stack (besides the change for
>> - Another way is to add the 3PCC "application" as a module with a higher
>> priority than pjsip_module so that incoming requests/responses first are
>> sent to 3PCC module first. From what I understand, if the
>> is not handled by this module, it will then be passed to the
>> (Is my understanding correct?)
>> Suggestions are very welcome. Hopefully I was clear enough.
> Visit our blog: http://blog.pjsip.org
> pjsip mailing list
> pjsip at lists.pjsip.org
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.503 / Virus Database: 269.15.30/1127 - Release Date:
> 11/12/2007 9:19 PM
More information about the pjsip