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

[reSIProcate-users] 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