sipplugins/sippdevmgmtsipadapter/src/nsmldmsipadapter.cpp
branchRCL_3
changeset 41 f54bfd820e04
parent 0 307788aac0a8
child 56 2c7192069824
--- a/sipplugins/sippdevmgmtsipadapter/src/nsmldmsipadapter.cpp	Thu Jul 15 19:02:22 2010 +0300
+++ b/sipplugins/sippdevmgmtsipadapter/src/nsmldmsipadapter.cpp	Thu Aug 19 10:16:25 2010 +0300
@@ -499,6 +499,16 @@
     sigQos.SetDFFormatL( MSmlDmDDFObject::EInt );
     sigQos.AddDFTypeMimeTypeL( KNSmlDMSIPTextPlain );
     sigQos.SetDescriptionL( KNSmlDMSIPSigQosExp );
+    
+    //Bearer ID
+    MSmlDmDDFObject& bearerid = idNode.AddChildObjectL( KNSmlDMSIPBearerID );
+    bearerid.SetAccessTypesL( accessTypesGetReplaceAdd );
+    bearerid.SetOccurenceL( MSmlDmDDFObject::EZeroOrOne );
+    bearerid.SetScopeL( MSmlDmDDFObject::EDynamic );
+    bearerid.SetDFFormatL( MSmlDmDDFObject::EInt );
+    bearerid.AddDFTypeMimeTypeL( KNSmlDMSIPTextPlain );
+    bearerid.SetDescriptionL( KNSmlDMSIPBearerIDExp );
+    
 
     DBG_PRINT("CNSmlDmSIPAdapter::DDFStructureL(): end");
     }
@@ -856,6 +866,22 @@
             }
         }
 
+    // SIP/x/BearerId
+    if ( KNSmlDMSIPBearerID() == lastUriSeg )
+        {
+        TUint32 bearerid = DesToInt( aObject );
+        if ( bearerid )
+            {
+            err = iProfiles->At( profileID )->SetParameter( 
+                    KBearerType, bearerid );
+            }
+        else
+            {
+            status = CSmlDmAdapter::EInvalidObject;
+            }
+        }
+    
+    
     // ==============================
     // OutboundProxy settings node
     // ==============================
@@ -1260,6 +1286,16 @@
         sigQos >>= 2;
         segmentResult.Num( sigQos );
         }
+    
+    // SIP/x/BearerId
+       if ( KNSmlDMSIPBearerID() == lastUriSeg )
+           {
+           TUint32 bearerid;
+           err = iProfiles->At( profileID )->GetParameter(
+                   KBearerType, bearerid );
+           segmentResult.Num( bearerid );
+           }
+    
 
     // Set error if fetch failed.
     if ( -1 > err )
@@ -1520,6 +1556,12 @@
             segmentName );
         currentURISegmentList->InsertL( currentURISegmentList->Size(), 
             KNSmlDMSIPSeparator8 );
+        
+        segmentName.Copy( KNSmlDMSIPBearerID );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), 
+            segmentName );
+        currentURISegmentList->InsertL( currentURISegmentList->Size(), 
+            KNSmlDMSIPSeparator8 );
         }
 
     // SIP/x/OutboundProxy
@@ -1821,7 +1863,11 @@
                 }
             }
         }
-    return aURI.Left( i );
+		
+	if(i < 0)
+		return aURI.Left(i+1);
+	else	
+		return aURI.Left( i );
     }
 
 // ---------------------------------------------------------------------------