Hi,
Based on the discussion in the sprint meeting today, I'd like to change the
stack behavior to echo record-routes in all responses by default. Any
objections?
Thanks,
Arjun
REF: http://track.sipfoundry.org/browse/XECS-1624
diff --git a/sipXtackLib/include/net/SipMessage.h
b/sipXtackLib/include/net/SipMessage.h
index c28ff4a..2ce3dc5 100644
--- a/sipXtackLib/include/net/SipMessage.h
+++ b/sipXtackLib/include/net/SipMessage.h
@@ -687,7 +687,8 @@ public:
void setResponseData(const SipMessage* request,
int responseCode,
const char* responseText,
- const char* localContact = NULL);
+ const char* localContact = NULL,
+ UtlBoolean echoRecordRoute = TRUE);
void setResponseData(int statusCode, const char* statusText,
const char* fromAddress,
diff --git a/sipXtackLib/src/net/SipMessage.cpp
b/sipXtackLib/src/net/SipMessage.cpp
index 981101a..0a8dfb1 100644
--- a/sipXtackLib/src/net/SipMessage.cpp
+++ b/sipXtackLib/src/net/SipMessage.cpp
@@ -1355,7 +1355,8 @@ UtlBoolean SipMessage::verifyMd5Authorization(const char*
userId,
void SipMessage::setResponseData(const SipMessage* request,
int responseCode,
const char* responseText,
- const char* localContact)
+ const char* localContact,
+ UtlBoolean echoRecordRoute)
{
setInterfaceIpPort(request->getInterfaceIp(), request->getInterfacePort()) ;
UtlString fromField;
@@ -1374,6 +1375,21 @@ void SipMessage::setResponseData(const SipMessage*
request,
sequenceNum, sequenceMethod.data(), localContact) ;
setViaFromRequest(request);
+
+ // If this is a response for a Request that Record-Routes are accepted,
+ // then echo the Record-Routes in the Response
+ if(echoRecordRoute &&
+ request->isRecordRouteAccepted())
+ {
+ UtlString recordRouteField;
+ int recordRouteIndex = 0;
+ while(request->getRecordRouteField(recordRouteIndex,
+ &recordRouteField))
+ {
+ setRecordRouteField(recordRouteField.data(), recordRouteIndex);
+ recordRouteIndex++;
+ }
+ }
}
void SipMessage::setAckData(const char* uri,
_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev
Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev