[reSIProcate-users] 200OK with Offer in UAC "EarlyWithAnswer" state
- From: Michael Trank <mike@xxxxxxxxxx>
- Date: Fri, 31 Aug 2007 10:33:51 -0400 (EDT)
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?