[reSIProcate] ACK is getting generated by DUM

Scott Godin slgodin at icescape.com
Wed Apr 2 07:23:24 CDT 2008


There are 2 invite sessions in this scenario.  Each invite session is either
a ClientInviteSession or a ServerInviteSession, but never both.  DUM will
not maintain any mapping between the two legs of a B2B call - that is your
applications responsibility.  Once you are tracking the 2 InviteSessions as
belonging to the same B2BUA call, you can look up one from the other's
callbacks and call end appropriately on the correct invite session.

 

Scott

 

From: resiprocate-devel-bounces at resiprocate.org
[mailto:resiprocate-devel-bounces at resiprocate.org] On Behalf Of Sandeep
Ammaladinna
Sent: April 2, 2008 2:43 AM
To: resiprocate-devel at resiprocate.org
Subject: [reSIProcate] ACK is getting generated by DUM

 

Hi,
 
 I am implementing a B2BUA over DUM. I figured out that DUM is generating an
ACK when it gets a 200 OK (from the terminating user agent). But as per RFC
3261 the originating user agent must send the ACK. The problem I am facing
is
suppost the B2BUA/DUM generates an ACK and if the originating user agent
does
not send an ACK (within the timeout period), the call back
"onAckNotReceived(InviteSessionHandle)" will be called. The
InviteSessionHandle
provides me the way to end (send BYE) the originating User agent only. I
dont
have a way to end the terminating user agent, who has already got the ACK
from
DUM/B2BUA.
 
I also tried something like this"
 
void
InviteSessHandler::onAckNotReceived(InviteSessionHandle ish) {
 
    InfoLog(<< "AckNotReceived : Invite Session");
    //This will just end the originating UA 
        ish->end(InviteSession::AckNotReceived);
 
   //Below is the procedure to end the terminating UA
   ClientInviteSession *client_is = dynamic_cast
                                    <ClientInviteSession*>(ish.get());
 
   if(!(client_is)) {
       CritLog( << "ClientInviteSession Not Found" << endl );
       return ;
   }
   ClientInviteSessionHandle client_ish = client_is->getHandle();
   client_ish->end();
 
}
 
But whenever I typecast InviteSessionHandle to ClientInviteSession, I get an
error message saying "ClientInviteSession Not Found".
 
Please help me how to get rid of the issue.
 
-Sandeep A

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20080402/335eb2f0/attachment.htm>


More information about the resiprocate-devel mailing list