You Are Here:

Community: Wiki

This page was last modified on 9 December 2008, at 18:43.

Phone Client Extension API

From Forum Nokia Wiki

Note!
This API is not part of the public SDK. It can be found in the SDK API Plug-in.


Purpose

The general purpose of using Phone Client Extension API is for performing Voice Call related functionalities like muting/unmuting microphone during a call, muting the default ringtone when phone ringing starts. Apart from these, the phone client extension API can also be used for general voice call functionalities like Answer an incoming call, hold up/ resume, hangup call, call transfer, basic Multiparty call. This can also be used to handle VoIP calls.

Phone Client Extension does not provide apis for removing a participant from basic multi party conversation.

To have more control over mutiparty conversation, for example to remove a single participant from multiparty conversation, we have to implement call dialing part with CTelephony. So that we can track individual call with their call ids and removing a particular participant can be easily done with CTelephony Hangup.

Use cases

How to build an application to implement code which does mute the default ring tone and mute/un mute the microphone volume of the phone,basic Call transfer and Multi party conversation.

Sample application is attached which can be used to answer, hangup/resume and hold VoIP calls using phone client extension apis.

Example code

Header files: PhCltExt.h, RPhCltServer.h
Libraries: Phoneclient.LIB


_LIT( KPhCltExtLib, "PhoneClientExt.dll" );
RLibrary iLibrary;
CPhCltExtFactory* iFactory = NULL; // Factory class for creating command handler
User::LeaveIfError( iLibrary.Load( KPhCltExtLib ) ); // Load PhoneClientExt dll
TInt res = 0; TInt err=0;
TRAP(err,res = iLibrary.Lookup( 1 )());
if ( !err )
{// Factory creation was successful.
iFactory = reinterpret_cast< CPhCltExtFactory * >( res );}
 
CPhCltCommandHandler* iCommandHandler = NULL;
if ( iFactory )
{// Factory creation was successful, create Command Handler.
iCommandHandler = iFactory->CPhCltCommandHandlerLD();
}
RPhCltServer iPhoneClient;
User::LeaveIfError ( iPhoneClient.Connect() ); //connect to Phone Server
iCommandHandler->Open( iPhoneClient );
 
// Muting the default ringing tone
TRequestStatus status;
iCommandHandler->MuteRingingTone(status);
User::WaitForRequest(status);
 
// For Muting microphone volume
TRequestStatus status;
iCommandHandler->MuteMicrophone( status,ETrue);
User::WaitForRequest(status);
 
// For Un muting microphone volume
TRequestStatus status;
iCommandHandler->MuteMicrophone( status,EFalse);
User::WaitForRequest(status);
 
//For Adding new call
//EPhCltChldThree Add a held call to the conversation.
//This Code adds a participant to Multi party conversation
iPhCommandHandler->Chld(iStatus,EPhCltChldThree,0);
SetActive();
 
//For hold/resume call
//EPhCltChldTwo Place all active calls on hold and accept the other
//(held or waiting) call.
iPhCommandHandler->Chld(iStatus,EPhCltChldTwo,0);
SetActive();
.
//For Hang up call
iPhCommandHandler->Chup( iStatus );
SetActive();
 
//For Transfering call
//EPhCltChldFour Connect the two calls and disconnect the subscriber from both
//calls (Explicit call transfer).
iPhCommandHandler->Chld(iStatus,EPhCltChldFour,0);
SetActive();


Example Application

Related Wiki Articles

No related wiki articles found

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: qdcZidentifierQSxhttpE3aE2fE2fwikiE2eforumE2enokiaE2ecomE2findeE78E2ephpE2fPortingE5fBlackBerryE5fStormE5fapplicationsE5fandE5fservicesE5ftoE5fS60E5f5thE5fE45ditionX qdcZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qdcZtypeQUqfntypeZCommunityContentQ qdcZtypeQUqfntypeZE52esourceQ qdcZtypeQUqfntypeZWebpageQ qdcZtypeQUqfntypeZWikiContentQ qdcZtypeQUqmarsZManagedE52esourceQ qdcZtypeQUqwebZInformationE52esourceQ qdcZtypeQUqwebZPageQ qdcZtypeQUqwebZE52esourceQ qdcZtypeQUqrdfsZE52esourceQ qfnZtopicQUqfnTopicZseriesE5f60Q qfnZtypeQUqfntypeZCommunityContentQ qfnZtypeQUqfntypeZE52esourceQ qfnZtypeQUqfntypeZWebpageQ qfnZtypeQUqfntypeZWikiContentQ qfnZuserE5ftagQSxs60X qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX qrdfZtypeQUqfnZE45E78cludedFromGeneralE4cistingsQ qrdfZtypeQUqfntypeZCommunityContentQ qrdfZtypeQUqfntypeZE52esourceQ qrdfZtypeQUqfntypeZWebpageQ qrdfZtypeQUqfntypeZWikiContentQ qrdfZtypeQUqmarsZManagedE52esourceQ qrdfZtypeQUqwebZInformationE52esourceQ qrdfZtypeQUqwebZPageQ qrdfZtypeQUqwebZE52esourceQ qrdfZtypeQUqrdfsZE52esourceQ
RDF Facets: qfnZuserE5FtagQSxphoneclientdialapiX