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

Re: [reSIProcate-users] 200OK with Offer in UAC "EarlyWithAnswer" state



Rohan and Scott, thank you both for your feedback on this.

I modified toEvent() in InviteSession.cxx to fool DUM into thinking that the 200 OK with the SDP is an empty 200 OK. toEvent() generates an On200 event instead of On200Offer.

DUM sends back an ACK and the GW didn't spit anything ugly back at me, and the call works.

So I guess that the SDP in that 200 OK is just "crap" as you say, rather than a new Offer.

Still I wonder if it's a mistake on their part, or a real attempt to initiate a second offer/answer
exchange, which they abandon when they get back the ACK without an answer.



Rohan Mahy wrote:

Michael,

The SDP in the 200 OK to the INVITE is not an offer. It is just crap. You are correct that DUM should be fixed to just ignore it, but under no circumstances should it respond by sending an SDP in the ACK. If the Sonus UA wants to change the SDP it needs to use an UPDATE or a reINVITE.

thanks,
-rohan


On Aug 31, 2007, at 7:33 AM, Michael Trank wrote:

Friends:

I am having a problem with sessions using DUM connecting to a gateway
manufactured by Sonus. Not sure of the model number, but the SDP packets
say "Sonus_UAC".

My sessions look like the following:

              DUM                                       GATEWAY
        INVITE ( no sdp, Supported: 100rel )            ------->>
        100 Trying                                      <<-------
        180 Ringing ( with sdp offer, Requires 100rel ) <<-------
        PRACK ( with sdp answer )                       ------->>
        200 OK ( for the prack, no sdp )                <<-------

At this point i hear the ringback from the telephone network through the
gateway.

But the next thing that happens is the remote telephone gets answered.

        200 OK (for the invite, *with* sdp offer )      <<-------

When the GW sends this 200 OK with a new offer, DUM shuts everything down,
and the onFailure callback gets called.

        ACK ( no sdp )                                  -------->>
        BYE                                             -------->>


I looked at the state machine, and I think the relevant state transition
for that 200 OK with the offer  is the following:

EarlyWithAnswer -> Terminated           [ label =
"on2XX-sdp/send::ACK,send::BYE,app::onFailure,app::onTerminated" ];

So, DUM is doing what is documented. DUM seems to think that what the
gateway is doing is *bad* SIP. But it seems to me that DUM could transition to the "Answered" state, and send a new answer in the ACK with provideAnswer(),
and all would be well. Does anyone have any idea why
DUM shuts down for on2XX-sdp in the EarlyWithAnswer state?




_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/

_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/