[reSIProcate] Passing Status Code to main application

David Thompson mrdatman at gmail.com
Sun Sep 30 13:05:00 CDT 2007


Teryl, It looks like you are building a classic B2B type of application.

This can be done a couple different ways. One way is to like Scott says here
is to register InviteSessionHandler to your main application class.

You then create a hash map (based on callid or callid + tags) that can
uniquely identify your different "legs". Each callback to your main
application is then delegated to the appropriate agent. Your UAS is then
responsible for creating the corresponding UAC and registering it with your
hashmap. Your UAS and UAC of course have pointers to each other and can
easily coordinate the state of the call (ie receive an 180 on UAC, tell the
matching UAS to pass the 180 on with SDP etc)

A drawback to the above approach is you will be required to clean up your
own memory of your agents as they depend on your apps dependence on DUM but
that are not cleaned up by DUM itself.

There may be a more elegant way to do this but that was my first stab at a
b2bua. Since then, the requirements of my app forced me to step outside of
DUM for my b2bUA as I needed more precise control of the state machines.

If you want code samples of my first app using DUM, let me know......


On 9/27/07, Teryl Taylor <terylt at diaphonics.com> wrote:
>
> Hi Scott,
>
> I am using a UserAgent and used those examples to build it.  But I want to
> pass the information from the events that I get in from the UserAgent up
> to
> the main application thread so I can forward them on to the other call
> leg.
>
> Thanks,
>
> Teryl
> ----- Original Message -----
> From: "Scott Godin" <slgodin at icescape.com>
> To: "Teryl Taylor" <terylt at diaphonics.com>;
> <resiprocate-devel at list.resiprocate.org>
> Sent: Thursday, September 27, 2007 4:08 PM
> Subject: RE: [reSIProcate] Passing Status Code to main application
>
>
> You should register an InviteSessionHandler - you will get callbacks on
> this that contain the entire SIP message.  You can get info like status
> codes from these messages.  Check out dum/test/UserAgent.cxx and
> dum/test/BasicCall.cxx for examples.
>
> Scott
>
> > -----Original Message-----
> > From: resiprocate-devel-bounces at resiprocate.org [mailto:resiprocate-
> > devel-bounces at resiprocate.org] On Behalf Of Teryl Taylor
> > Sent: Thursday, September 27, 2007 3:02 PM
> > To: resiprocate-devel at list.resiprocate.org
> > Subject: [reSIProcate] Passing Status Code to main application
> >
> > Hi everyone,
> >
> > I'm currently using resiprocate and DUM to develop a combination UAS
> > and UAC
> > SIP stack.  I want the sip stack to be able to receive an invite and
> > alert
> > the main application that an invite has arrived so that the
> application
> > can
> > take the incoming invite and forward it on - hence creating 2 call
> legs
> > (incoming and outgoing).  Then, forward each response message from the
> > first
> > call leg to the other (similar to a proxy).   The application is able
> > to
> > keep track of the client and the server side sessions because it
> > receives
> > both a client and a server object which contain the
> > ClientInviteSessionHandle, the ServerInviteSessionHandle and an
> > application
> > specific DialogSet object.
> >
> > My question is, what is the best way to pass the SIP message codes up
> > to the
> > application main thread?  (i.e. how would I pass the 180 message I
> > receive
> > from the second call leg up to the application so it could forward it
> > on to
> > the first call leg?).    I was thinking of maybe sticking a Status
> Code
> > variable in the application's subclass of the AppDialogSet object and
> > changing that in the SIP events that are received through DUM.  But I
> > think
> > that might be error proned if 2 messages come in back to back.  Is
> > there any
> > way to get the message status code through the invite session handle?
> >
> > Thanks,
> >
> > Teryl
> >
> > _______________________________________________
> > resiprocate-devel mailing list
> > resiprocate-devel at resiprocate.org
> > https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
>
>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20070930/5706fe38/attachment.htm>


More information about the resiprocate-devel mailing list