You Are Here:

Community: Wiki

This page was last modified on 16 March 2009, at 20:16.

How to establish data call in S60 3rd edition devices

From Forum Nokia Wiki

Previously in 2nd edition devices, ETEL APIs like RPhone, RLine, RCall are used for establishing a CSD call. But ETel APIs are deprecated from 3rd edition onwards and it was replaced by Etel 3rd Party API( CTelephony ).

But even this new ETel3rdparty API has the data call functionality removed as it is Symbian's opinion that data calls do not have a valid use case and that developers are advised to switch towards using packed data ( like raw sockets, RTP, ...) for their application's data exchange.

However the ETEL APIs are still present in the 3rd edition public SDKs and can be used for establishing data call. However there are no guarantees that full support is implemented in the platform (or) the entire support for CSD call functionality will be available in future platform releases.

Here are the steps for initiating and answering data call :

1) The preliminary steps are similar to initiate a voice call, like establishing session to the RTelServer, opening the RPhone instance with the connected server session,etc.. But for getting the line info, it should be checked for the existence of DataCall capability. Here is the code snippet:

RCall iCall;
RLine iLine;
RTelServer::TPhoneInfo phoneInfo;
RTelServer iServer;
TInt iNumberLines;
RPhone iPhone;
RPhone::TLineInfo lineInfo;
iServer.Connect();
if (iServer.LoadPhoneModule(_L("phonetsy")) != KErrNone)
{
return;
}
iServer.GetPhoneInfo(0, phoneInfo);
iPhone.Open(iServer, phoneInfo.iName);
iPhone.EnumerateLines(iNumberLines);
for (TInt a = 0; !FoundLine && a < iNumberLines; a++)
{
iPhone.GetLineInfo(a, lineInfo);
if (lineInfo.iLineCapsFlags & RLine::KCapsData)
FoundLine = ETrue;
}
iLine.Open(iPhone, lineInfo.iName);



2) If you want to listen for incoming data call, then the following code snippets demonstrates the steps for doing it( which is somewhat similar to voice call steps):


TName call_name;
// asynchronous request waiting for incoming call notification
iLine.NotifyIncomingCall(iStatus, call_name);
SetActive();



After the asynchronous request completes, the call should be opened with the existing line as follows:


iCall.OpenExistingCall(iLine, call_name);



Then the opened call should be answered as follows:


iCall.AnswerIncomingCall(iStatus);
SetActive();



Once this answering call request is completed, the commport should be used for loaning the data port as follows:


RCall::TCommPort iCommPort;
iCall.LoanDataPort(iStatus, iCommPort);
SetActive();



The completion of this request indicates that the dataport loaning is over. Now the data call is completely established and ready for data transfer. For transfering data through the CSD call, a session is established with the Commserver and the appropriate comm module should be loaded. Then the data can be received/transfered using RComm APIs as follows:


RCommServ iCommServer;
RComm iComm;
iCommServer.Connect();
iCommServer.LoadCommModule(iCommPort.iCsy);
TCommConfig config;
iComm.Open(iCommServer, iCommPort.iPort, ECommShared);
iComm.Config(config);
config().iTerminatorCount = 0;
iComm.SetConfig(config); // for setting configurations
 
iComm.Read() // should be used for receiving data from the CSD call
iComm.Write() // should be used for sending data through the CSD call



3) For initiating data call, a new call should be opened using RCall and the destination number is dialed using Dial() API. Once the dial is successful, then the data port should be loaned as usual for further data transfer through the established call.

TInt ret;
iCall.OpenNewCall(iLine, call_name);
ret = iCall.Dial(_L("+358408033493"));
if (ret != KErrNone)
{
// dialing successful
}



This data call functionality seems to have a dependency on Network mode as it works properly on GSM mode alone.

KIS000999 - Error -8072 while trying to answer a data call on S60 3rd Edition FP1 devices 

Rate This

 
Bookmark this page: DeliciousDiggFacebookGoogleYahooStumbleUponRedditDiigoTechnocratiTwitter  Share this page Share this page Print this Page Print this page Invite a friend Invite a friend
京ICP备05048969号    Email Newsletters Press Terms & Conditions Privacy Policy Sitemap Contact Us © 2009 Nokia 
RDF Facets: qdcZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qdcZidentifierQSxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2findeE78E2ephpE2fHowE5ftoE5fimplementE5ftouchE5fimageE5fscrollingE5finE5fJavaE5fME45X qdcZpublisherQUxhttpE3aE2fE2fswE2enokiaE2ecomE2fidE2fc764fd1cE2d8b06E2d499aE2d9a6aE2d17c3903d5a65E2fforumE5fnokiaE5fcrawlerE5fagentX qdcZtitleQSxHowE20toE20implementE20touchE20imageE20scrollingE20inE20JavaE20ME45E20E2dE20ForumE20NokiaE20WikiX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqfntypeZWikiContentQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qrssZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qfnZdistributionQUxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2fX qfnZtopicQUqfnTopicZjavaQRqdcZtypeQUqrdfsZE52esourceQRqmarsZrelevanceQNx100X qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZtypeQUqfntypeZWikiContentQ qfnZupdatedQDx2008E2d10E2d05X qfnZuserE5ftagQSxjavaX qmarsZdescriptionQSxEa0E20WikiE20javaE20symbianE5fosE20s60E20maemoE20cE2bE2bE20WikiE20HomeE20WikiE20HelpE20OverviewE20GlossaryE20CreateE20PageE20ProposeE20anE20ArticleE20SpotlightE20TopicE20E2dE20WE52TE20WidgetsE20ProgrammingE20E4canguageE20E2dE20SymbianE20CE2bE2bE20E2dE20OpenE20CE2fCE2bE2bE20E2dE20JavaE20E2dE20FlashE20E4citeE20E2dE20PythonE20WebE20TechnologiesE20E2dE20WE52TE20WidgetsE20E2dE20WidSetsE20ToolsE20andE20SE44KE20CodeE20E45E78amplesE20KnowledgeE20BaseE20TechnologyE20AreasE20SoftwareE20PlatformsE20E44evelopmentE20ProcessE20E3fE3fWikiE20ChineseE20E3fE3fE3fWikiE20JapaneseE20PortugueseE2fBrazilianE20E52ussianE20WhatE20linksE20hereE20UploadE20fileE20SpecialE20pagesE20PrintableE20versionE44ownloadE20asE20PE44FE20GoE20ToE20E2eE2eE2eX qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqfntypeZWikiContentQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ