Hi,
I've had a better look at AmOfferAnswer class code and to the Offer/Answer
rfc.
I am not sure that a new state is needed because, according to rfc, when an
sdp is received in a reliable provisional response the Offer/Answer should
be considered completed, like when the sdp is received in the final reply.
If I understand correctly AmOfferAnswer code, the transition to the
Completed state is performed in onRxSdp when the message contains an SDP,
regardless of if it is a provisional response and if it is a reliable one.
Shouldn't the kind of reply and the 100rel support be checked in this case
before changing the state?
If I am correct where could be in the AmOfferClass a good place to perform
this kind of check?

Regards,

Federico Cabiddu

On Wed, Jul 1, 2015 at 11:46 AM, Stefan Sayer <[email protected]>
wrote:

> Hi,
>
> Taisto Qvist wrote on 06/30/2015 07:18 PM:
> > Hi,
> >
> > I've just started testing SEMS and the SBC logic, and I am quite
> > thrilled with my success so far.
> >
> > However I ran into an issue when a client is using 100rel, and
> > finishes the SDP negotiation with 180/PRACK.
> >
> > Once the call is answered with 200 (without SDP, since the answer was
> > sent in 180) the SBC terminates the call by sending 487 to originator.
> >
> > The issue seems to be at:
> >
> > [#7f0bd865b700/18607] [getSdpBody, AmOfferAnswer.cpp:479] DEBUG:  No
> > SDP Offer.
> >  [#7f0bd865b700/18607] [reply, AmBasicSipDialog.cpp:614] DEBUG:
> > onTxReply failed
> >  [#7f0bd865b700/18607] [relaySip, AmB2BSession.cpp:874] ERROR:
> > dlg->reply() failed
> >  [#7f0bd865b700/18607] [updateCallStatus, CallLeg.cpp:1229] DEBUG:  A
> > leg 5796F074-5592CCE60009E42F-D8D62700 changing status from Ringing to
> > Disconnected
> >
> > This, despite that processing of the SDP in 180, seems to have worked
> > fine.
> >
> > [#7f0bd875c700/18608] [setState, AmOfferAnswer.cpp:69] DEBUG:  setting
> > SIP dialog O/A status: OfferSent->Completed
> >  #7f0bd875c700/18608] [onRxSdp, AmOfferAnswer.cpp:265] DEBUG:
> > oa_state: OfferSent -> Completed
> >  [#7f0bd865b700/18607] [setState, AmOfferAnswer.cpp:69] DEBUG:
> > setting SIP dialog O/A status: OfferRecved->Completed
> >
> > I've started looking through the code, and it seems like there is
> > logic for handling SDP in 183, etc, but I havent found the real
> > problem yet.
> you're right. AmOfferAnswer::onReplyOut should not necessarily try to
> get an SDP body in that case and may just send out the 200 without
> SDP, or put in the SDP from the 183.
>
> The proper solution to this is to add another state
> OA_PreviewCompleted which deals with the "preview" that may be
> received here, as described in
> https://tools.ietf.org/html/rfc6337#section-3.1.1
> In checkStateChange, the transition from PreviewCompleted to Completed
> can then be ignored.
>
> Stefan
>
> _______________________________________________
> Semsdev mailing list
> [email protected]
> http://lists.iptel.org/mailman/listinfo/semsdev
>
_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to