realtimenetprots/sipfw/SIP/ConnectionMgr/src/CTransport.cpp
branchRCL_3
changeset 26 822e1f077722
parent 20 a7d1e54a7332
child 29 5f12516512fa
child 32 2cdd984ec527
--- a/realtimenetprots/sipfw/SIP/ConnectionMgr/src/CTransport.cpp	Tue May 25 13:04:58 2010 +0300
+++ b/realtimenetprots/sipfw/SIP/ConnectionMgr/src/CTransport.cpp	Wed Jun 09 10:04:26 2010 +0300
@@ -1459,11 +1459,23 @@
                 if ( Protocol() == KProtocolTls )
                     {
                     RStringF tls = SIPStrings::StringF( SipStrConsts::ETLS );
-                    // SIP-URI with transport=TLS must not use sips scheme
-                    uri.SIPURI()->SetSIPS( transportParam != tls );
+                    // SIP Scheme in Contact header should be same as From Header
+                    CURIContainer& FromUri = (((aMessage->From())->SIPAddress()).URI());
+                    if(FromUri.IsSIPURI())
+                        {
+                        CSIPURI* FromSIPUri =FromUri.SIPURI();
+                        if(FromSIPUri->IsSIPSURI())
+                            {
+                            uri.SIPURI()->SetSIPS( ETrue );
+                            }
+                        else
+                            {
+                            uri.SIPURI()->SetSIPS( EFalse );
+                            }
+                        }                    
                     if(transportParam == tls)
                         {
-                        uri.SIPURI()->SetSIPS(EFalse);
+                        //uri.SIPURI()->SetSIPS(EFalse);
                         //Delete the param transport=tls from the URI as it is deprecated in RFC 3261
                         uri.SIPURI()->DeleteParam(SIPStrings::StringF( SipStrConsts::ETransport ));
                         }