Privacy support in RTC 1.5

RTC 1.5 supports privacy for SIP. It implements a subset of RFC 3323, RFC3324, RFC 3325 and can create messages that do not divulge personal identity information.

Windows CE and WM6 has the following privacy constants describing different privacy policy. By default, RTC doesn't have Privacy policy set, i.e. RTCSP_PRIVACY_NONE is used.

RTCSP_PRIVACY_NONE = 0x00000000

RTCSP_PRIVACY_LOCAL = 0x00000001

RTCSP_PRIVACY_PROXY_HEADER = 0x00000002

RTCSP_PRIVACY_PROXY_SESSION = 0x00000004

RTCSP_PRIVACY_ALL = 0x0000000F

Check the following link for more info on these constants:

https://msdn2.microsoft.com/en-us/library/aa922722.aspx

There are two levels of privacy support in RTC:

1.Session level - the privacy setting is done for an IRTCSession.

Interface, IRTCSessionSIPPrivacy, adds privacy support for all SIP traffic for a session. It can be created by calling  QueryInterface on the IRTCSession object. The application can call IRTCSessionSIPPrivacy::put_SIPPrivacyType to set the privacy policy by using predefined privacy constants.

Example:

            CComPtr<IRTCSessionSIPPrivacy>   cpPrivacy;
            hr = cpNewSession->QueryInterface(
                IID_IRTCSessionSIPPrivacy,
                reinterpret_cast<void**>(&cpPrivacy)
                );

            if (SUCCEEDED(hr))
            {
                hr = cpPrivacy->put_SIPPrivacyType(RTCSP_PRIVACY_LOCAL);
                if (FAILED(hr))
                {
                    ....
                }
            }

2.Client level - the privacy is set for an IRTCClient

Interface, IRTCClientSIPPrivacy, adds privacy support for all SIP traffic for a an IRTCClient. It can be created by calling  QueryInterface on the IRTCClient object. This interface also has a function,put_SIPPrivacyType, to set the privacy policy on a client. The privacy policy can be set after an IRTCClient is initialized and before the client is shut down. So it's possible for the application to add an UI to let the user change the privacy policy when the client is alive.