< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate-users] How to work on forwarding request and forking?


Hi joegon, 

I am now trying to read the configuration for repro. However, It seems that it cannot have my code inside as a plugin?
Actually, What I am going to implement is a IMS application. 
For a IMS application, it is very common to send back the invite to scscf without modification(pass through after checking) and sometimes for the invite to MRF.(play annoucment)

Is Dum possible to handle sending the original received invite back ?
If it is ok, how?

Best Regards,
Terry


On Wed, Feb 19, 2014 at 10:18 AM, Joegen Baclor <jbaclor@xxxxxxxxx> wrote:
I am using librepro.so for a custom proxy project.  Repro Proxy itself is just an application wrapper on top of librepro.  Being a proxy, I do not think repro would also be the entire solution to what you are trying to achieve.  I am assuming that you want media to be peer to peer after the announcement has been played?  If so I recommend the following setup.   Use an announcement server to play the initial early media.  Freeswitch comes to mind here.

UAC ->  Repro -> Announcement Server.


Configure repro to handle redirects locally.  After your announcement has been played, issue a redirect to the correct destination

F1. UAC INVITE -> Repro -> AS
F2. AS -> 183 (early media) -> UAC
F3. AS -----> Play announcement -----> UAC
F4. AS -> 302 Redirect -> Repro (handles redirect locally)
F5. Repro forks INVITE -> UAS
F6. UAS -> 200 Ok with new media -> Repro -> UAC
F7. UAC -----------------> Updated media flow ------------> UAS

-joegen



On 02/19/2014 09:01 AM, leung terry wrote:
Hi Scott,

Thanks for your answer
However, my flow involve having some kind of early media for playing some announcement before connecting the call to the real callee.
And it may involves other kind of logic that I want to implement separately. 

To my understanding, repro is a standalone sip proxy, but not a set of api, am I correct?
How can I define my own flow there? just by configuration or by changing its code?
Also, does it 

Thanks!
Best Regards,
Terry



On Tue, Feb 18, 2014 at 10:14 PM, Scott Godin <sgodin@xxxxxxxxxxxxxxx> wrote:
I think you are probably going down the wrong path here.  Sounds like what you want to create is pretty much SIP proxy functionality.  In that case, I would avoid using DUM or ichat-gw altogether (unless you really want a B2BUA) and take a look at using repro (SIP proxy) as your starting ground.  There is already logic in repro to forward/fork requests and to gather their responses for sending back to the request originator.

Regards,
Scott


On Tue, Feb 18, 2014 at 3:19 AM, leung terry <terryleung83@xxxxxxxxx> wrote:
Hi all,

I am new to here. I am now reading the document and code.
I am going to have a new project which involves forking an incoming request.
It is not supposed to be a B2BUA. The incoming and outgoing invite should have the same To/From/Call-Id. 

I tried to read the ichat-gw included in the source code. However, it is actually a B2BUA case and I cannot find any example doing proxy by using dum layer api or forking incoming invite.

My question, for such case, I should have 3 Session object per call?
I am not sure if I am correct or not. I just put my understanding based on the ichat-gw I read and I think I should do the following modification in order to made it work for my case.

When I receive the first invite, I should receive onNewSession and then onOffer in the B2BSession. 
Then I should now create two peer by creating two more B2BSession(createNewPeer in ichat-gw) and run mDum.makeInviteSession with the use of the incoming message with the use of another overloaded version 

      SharedPtr<SipMessage> makeInviteSession(const NameAddr& target, InviteSessionHandle sessionToReplace, const SharedPtr<UserProfile>& userProfile, const Contents* initialOffer, AppDialogSet* ads = 0);

I should change the RURI/Route header/.... accordingly in the two different makeInviteSession

Am I correct? 


Best Regards,
Terry

_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/




_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/