Hi all,
I'm trying to establish a modem connection between two S60 3rd edition devices. I read in the documentation of the CTelephony class that this is not possible, so I'm using the old Etel interface.
I've enumerated phone's lines, found the data line and started dialing. Then, something strange happens: phone call indicator appears on the phone's screen, blinks for a second or two, then greys out and iCall.Dial method returns with error KErrGeneral. Why is that? When I choose a voice line instead of data line everything works fine. What's the problem with using the data line?
Here's the code I'm using (I'm testing it on Nokia E61):
Code:iLine.Close(); iPhone.Close(); iServer.Close(); RTelServer::TPhoneInfo phoneInfo; TInt iNumberLines; RPhone::TLineInfo lineInfo; User::LeaveIfError( iServer.Connect() ); TBool FoundLine = EFalse; if (iServer.LoadPhoneModule(_L("phonetsy")) != KErrNone) { return; } iServer.GetPhoneInfo(0, phoneInfo); iPhone.Open(iServer, phoneInfo.iName); User::LeaveIfError( iPhone.Initialise() ); iPhone.EnumerateLines(iNumberLines); for (TInt a = 0; !FoundLine && a < iNumberLines; a++) { iPhone.GetLineInfo(a, lineInfo); if (lineInfo.iLineCapsFlags & RLine::KCapsData)//KCapsVoice { FoundLine = ETrue; break; } } if ( ! FoundLine ) { return; } iLine.Open(iPhone, lineInfo.iName); // dialing: TInt ret; RCall iCall; TName call_name = _L( "voice call" ); User::LeaveIfError( iCall.OpenNewCall(iLine/*, call_name*/) ); ret = iCall.Dial( KPhoneNumber ); if (ret != KErrNone) { // here the return value (ret) == KErrGeneral User::LeaveIfError( ret ); } else { /* TName call_name; RCall::TCommPort iCommPort; iCall.LoanDataPort(iStatus, iCommPort); //SetActive(); User::WaitForRequest(iStatus); if ( iStatus == KErrNone ) { CAknInformationNote* infor1= new (ELeave) CAknInformationNote; infor1->ExecuteLD(_L("Loaned successfully - port ")); }*/ }




