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

[reSIProcate] Summary of Recent Changes


Quick Summary of Recent Commit
------------------------------
- added request validation
- added profile settings for request validation
- removed setting of Accept header by DUM
- changed RedirectManager and AppDialogSetFactory to auto_ptr storage for
proper memory management
- cleaned up answerOptions in ServerOutOfDialogReq
- cleaned up BasicCall sample app - added stack shutdown logic and AppDialog
sample.

WARNING:  The DUM layer will now Reject messages that do not pass the
request validation procedures outlined in RFC3261 Section 8.2 and the Accept
header validation recommended in SFTF case216.  The inbound request is
checked against the features that are set to be supported via the Profile.
You will need to ensure that your profile is setup correctly.  For example:
If your app supports REGISTER requests, you must ensure that you
addSupportedMethod(REGISTER).  You can enable/disable Mime Type, Language
and Accept validation via the Profile.

Detailed Summary
----------------

Adding Accept header Request Issues:
---------------------------------------------------------
I removed setting the accept header in any requests, by the DUM.  For Invite
sessions application/sdp is to be assumed, so there should be no issues with
it.  I removed the ability to advertise Accept headers from the Profile -
since this is not really an advertisement, but a response requirement.  The
Accept header is still added to OPTIONS responses and appropriate 4xx
responses.  All Mime types supported are added in these cases (I'm not sure
if that is the 100% correct thing to do or not).

New DUM Validate Functions
-------------------------------------------
validateRequest now rewritten and split up to the following functions:
1. validateRequestURI - checks method and scheme 
2. validateRequiredOptions - checks the Required header
3. validateContent - checks Content-Type, Content-Encoding and
Content-Language if Content-Disposition is not set to optional.  This check
is controllable via new profile setting validateContentEnabled() - default
is true.  The Language check within is controllable via new profile setting
validateContentLanguageEnabled() - default is false. 
4. validateAccept - ensures that the mime type in the requests Accept header
is supported.  This check is controllable via new profile setting
validateAcceptEnabled() - default is true. 

Added Default Profile Settings
-----------------------------------
- default to advertise Allow and Supported headers
- default methods supported are:  INVITE, ACK, CANCEL, OPTIONS, BYE - the
assumption is that is the minimum that a SIP UA would every support.  Note: 
You will now need to add other supported methods for your applications: ie.
REFER, NOTIFY, etc.
- default supported scheme is: "sip"
- default supported language is - "en"
- default supported Mime Type is - "application/sdp"
- content validation is enabled by default
- content language validation is disabled by default
- accept validation is enabled by default

I also added clearSupportedXXXX() methods so that you can clear out these
defaults.

Let me know if you see any issues.

Thanks,

Scott