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

[reSIProcate] rejecting offer received to an SDP-less (re)INVITE


Hi,

According to  RFC 6337 section 5.2.4:

Because the offer arrives in a response to the INVITE, the UAC cannot
   reject the message containing the offer.  If the UAC wishes to reject
   the entire offer, it must send a PRACK or ACK request including all
   the media lines with ports set to zero.  Then, if it does not wish to
   continue the session, it may send a CANCEL or BYE request to
   terminate the dialog.

But if I understand the code correctly, reSiprocate sends the ACK without sdp:
resip/dum/InviteSession.cxx:760 in InviteSession::reject

      // Sent a reINVITE no offer and received a 200-offer.
      // Simply send an ACK without an answer and stay in Connected.
      case SentReinviteAnswered:
      {
         InfoLog (<< "Not sending " << statusCode << " error since 
transaction"
                     "already completed, sending answer-less ACK");
         transition(Connected);
         sendAck();
         break;
      }

Also, upon receiving the ACK, in 
InviteSession::dispatchReceivedReinviteSentOffer, the cases OnAckAnswer and 
OnAck are distinguised, only by the existence of the SDP, not by its contents.

Is this a known bug? I could not find the relevant information in earlier RFCs 
so maybe the code follows an older (or newer?) standard :)

br

Szo