示例#1
0
bool DialogTrackerState::UpdateRequest( DialogTracker& impl, SipMessage& request, TransactionDirectionality direction, const char* address, int port ) const
{
   if( impl.isARetransmittedRequest( request ) )
   {
      impl.restoreSdpBodyOfRetransmittedRequest( request );
   }
   else
   {
      OsSysLog::add(FAC_NAT,PRI_WARNING,"'%s': Received unexpected event UpdateRequest while in state '%s'",
            impl.name(), impl.GetCurrentState()->name() );
   }
   return true;
}
bool DialogTrackerState::InviteRequest( DialogTracker& impl, SipMessage& request, TransactionDirectionality direction, const char* address, int port  ) const
{
    if( !impl.isRequestAlreadyHandledByOther( request ) )
    {
        impl.markRequestAsHandledByUs( request );
    }

    if( impl.isARetransmittedRequest( request ) )
    {
        impl.restoreSdpBodyOfRetransmittedRequest( request );
    }
    else
    {
        Os::Logger::instance().log(FAC_NAT,PRI_WARNING,"'%s': Received unexpected event InviteRequest while in state '%s'",
                                   impl.name(), impl.GetCurrentState()->name() );
    }
    return true;
}