Categories: S60 | Symbian C++ | Telephony | VoIP
This page was last modified 14:43, 31 March 2008.
Phone Client Extension API
From Forum Nokia Wiki
| Note! |
|---|
|
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
Sending DTMF tones with Phone client Extension
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| ADD-IN for mail client | hassan21006 | General Symbian C++ | 4 | 2007-04-20 15:21 |
| any api supplied by Symbian to use in midlet ? | Nokia_Archive | Symbian Tools & SDKs | 3 | 2003-06-13 07:44 |
| ADD-IN for Email Client (Series 80) | hassan21006 | General Symbian C++ | 1 | 2006-08-10 11:33 |
| how to use udp, for sending data server to client | acayir | Mobile Java Networking & Messaging & Security | 1 | 2006-08-02 19:18 |
| How to communicate via HTTP? | Juggle4Evr1 | General Symbian C++ | 2 | 2003-04-08 22:12 |
