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

[reSIProcate] onAckNotReceived issue


Hi,
 
I have written a B2BUA over DUM. I have an issue with the below call flow, please help me fix this.
 
UA1 ----INV----> B2B--------INV----->UA2
UA1 <----180---- B2B<--------180-----UA2
UA1 <----200---- B2B<--------200-----UA2
                       B2B--------ACK----->UA2
 
Suppose the UA1 gets killed before sinding ACK after certain time, the DUM timer fires and the onAckNotReceived call back is called.
 
void onAckNotReceived(InviteSessionHandler is)
{
   Here I can end the UA1 call leg by doing
   is->end();
   But how can I terminate UA2???????????????
   Even if I try to do something like the below, I get an error saying "Handler invalid"
   ClientInviteSession *client_is = <dynamic_cast(ClinetInviteSeeion*)>ish.get();  (dont worry about the syntax, it may be wrong here, but i have taken care in the code)
   if(client_is == invalid)
   Cout << "Handler invalid";
   ClientInviteSessionHandler cis->getHandle();
   cis->end();
}
 
  Please help me in fixning the above issue. How do I terminate UA2 from inside of onAckNotReceived().
 
Thanks,
-Sandeep A