Modified:
/trunk/sipXcallLib/src/cp/state/BaseSipConnectionState.cpp
=======================================
--- /trunk/sipXcallLib/src/cp/state/BaseSipConnectionState.cpp Sun Jan 24
08:06:28 2010
+++ /trunk/sipXcallLib/src/cp/state/BaseSipConnectionState.cpp Mon Feb 7
15:00:17 2011
@@ -2224,6 +2224,20 @@
// 481 and other fatal responses were already handled
// if CANCEL succeeds, 487 Request Terminated will be sent on INVITE
transaction (with cseq method INVITE)
// and then we terminate INVITE transaction
+
+ // OBS: We do care - some servers (SipXecs) does not send 487 if we are
in remote offering
+ ISipConnectionState::StateEnum connectionState = getCurrentState();
+
+ int responseCode = sipMessage.getResponseStatusCode();
+ UtlString responseText;
+ sipMessage.getResponseStatusText(&responseText);
+
+ if (responseCode == SIP_OK_CODE)
+ {
+ // progress to disconnected state
+ SipResponseTransitionMemory memory(responseCode, responseText);
+ return getTransition(ISipConnectionState::CONNECTION_DISCONNECTED,
&memory);
+ }
return NULL;
}