void CTelServerProcessor::GetLineInfoL(RPhone::TLineInfo& aInfo,const TDesC& aPhoneName, TUint aLineType) { RPhone phone; User::LeaveIfError(phone.Open(iTelServer,aPhoneName)); CleanupClosePushL(phone); TInt count = 0; User::LeaveIfError(phone.EnumerateLines(count)); if (count <= 0) { OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CTELSERVERPROCESSOR_GETLINEINFOL_1,"NetDial:\tGetLineInfoL(): no line info available - leaving with -1"); User::Leave(KErrNotFound); } TBool found = EFalse; for (TInt i=0; i<count && !found; ++i) { User::LeaveIfError(phone.GetLineInfo(i,aInfo)); /* if (aInfo.iLineCapsFlags & aLineType) // Required line found { found=ETrue; } */ RLine line; User::LeaveIfError(line.Open(phone,aInfo.iName)); CleanupClosePushL(line); RLine::TCaps caps; User::LeaveIfError(line.GetCaps(caps)); if (caps.iFlags & aLineType) // Required line found { found=ETrue; } CleanupStack::PopAndDestroy(&line); } CleanupStack::PopAndDestroy(&phone); if (!found) { OstTraceDef0(OST_TRACE_CATEGORY_DEBUG, TRACE_INTERNALS, CTELSERVERPROCESSOR_GETLINEINFOL_2, "NetDial:\tGetLineInfoL(): required line not found - leaving with -1"); User::Leave(KErrNotFound); } }