Hi Benny, 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. Regards, Anshuman ----- Original Message ----- From: "Benny Prijono" <bennylp@xxxxxxxxx> To: "pjsip embedded/DSP SIP discussion" <pjsip at lists.pjsip.org> Sent: Tuesday, November 13, 2007 9:04 PM Subject: Re: 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, > right? > > 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!). > > -benny > > 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 >> place >> to do this. We thought of 2 ways to do this. In bout cases, we >> (obviously) >> act as the controller (a B2BUA). >> >> - One way would be to do so from our application wherein we disable >> sending >> 'ACK' from the stack and pass that job to the application. Our >> application >> receives all the requests and responses and sends out requests and >> responses >> (after necessary SDP modifications). This looks simpler to implement but >> doesn't look very extendible. As in, for our requirement, the transferee >> may >> 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 >> doing >> it. This will require more change to stack (besides the change for >> sending >> ACK). >> >> - 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 >> request/response >> is not handled by this module, it will then be passed to the >> pjsip_module. >> (Is my understanding correct?) >> >> Suggestions are very welcome. Hopefully I was clear enough. >> >> Regards, >> Anshuman > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_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 > >