diff -r b8a7e07b2677 -r 0295359a7673 sipplugins/sippdevmgmtsipadapter/src/nsmldmsipadapter.cpp --- a/sipplugins/sippdevmgmtsipadapter/src/nsmldmsipadapter.cpp Fri Jul 09 13:15:39 2010 +0300 +++ b/sipplugins/sippdevmgmtsipadapter/src/nsmldmsipadapter.cpp Fri Aug 06 15:14:04 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 ); } // ---------------------------------------------------------------------------