Modified:
/trunk/sipXtackLib/include/net/SipMessage.h
/trunk/sipXtackLib/src/net/SipMessage.cpp
=======================================
--- /trunk/sipXtackLib/include/net/SipMessage.h Sun Jan 24 03:43:15 2010
+++ /trunk/sipXtackLib/include/net/SipMessage.h Mon Feb 7 14:36:33 2011
@@ -1123,6 +1123,8 @@
void decrementMaxForwards();
+ void setRecordRoutes(const SipMessage *inviteRequest);
+
UtlBoolean getRecordRouteField(int index,
UtlString* recordRouteField) const;
=======================================
--- /trunk/sipXtackLib/src/net/SipMessage.cpp Sun Jan 24 07:57:43 2010
+++ /trunk/sipXtackLib/src/net/SipMessage.cpp Mon Feb 7 14:36:33 2011
@@ -905,6 +905,8 @@
const char* localContact)
{
setResponseData(request, SIP_OK_CODE, SIP_OK_TEXT, localContact);
+
+ setRecordRoutes(request);
}
void SipMessage::setNotifyData(SipMessage *subscribeRequest,
@@ -3720,6 +3722,18 @@
NameValueTokenizer::frontBackTrim(recordRouteUri, " \t");
return(fieldExists && !recordRouteUri->isNull());
}
+
+void SipMessage::setRecordRoutes(const SipMessage *inviteRequest)
+{
+ UtlString recordRouteField;
+ int recordRouteIndex = 0;
+ while(inviteRequest->getRecordRouteField(recordRouteIndex,
+ &recordRouteField))
+ {
+ setRecordRouteField(recordRouteField.data(), recordRouteIndex);
+ recordRouteIndex++;
+ }
+}
void SipMessage::setRecordRouteField(const char* recordRouteField,
int index)