Utilizing Nokia VoIP Client
Generally CTelephony APIs are used for telephony functions but these APIs doesn’t work for VoIP calls.
We have to use the following three APIs for VoIP calls
1. Phone Client Dial
2. Phone Client Extension
3. Log engine
Functionalities provided by these APIs
1.Phone Client Dial – CPhCltDialer can be used to dial VoIP calls by setting the calltype as EPhCltCallVoIP. This API is available in Extensions plugin package for S60 3rd MR Edition SDK. Another way to dial Voip call is to use AIW APIs.
2.Phone Client Extension – CphCltExtFactory function CPhCltCommandHandlerLD() returns CPhCltCommandHandler object. CPhCltCommandHandler can be used to handle VoIP calls – Answer incoming call, Hold / Resume call, Mute / Unmute , Hangup VoIP call.. This API is available in Extensions plugin package for S60 3rd MR Edition SDK.
3. Log engine can be used to get notification about the incoming call. This API is available in Public S60 3rd SDK For Symbian OS, For C++, MR itself. Also note that notification about the incoming VoIP call can be obtained using KPSUidTelephonyCallHandling PS key, which is available in Extensions plugin package for S60 3rd MR Edition SDK)
The attached VoipCallHandle Example can demonstrate the following use cases- Dial , Answer incoming call, Hold / Resume , Mut/Unmute Incoming call.
This example gives notification about the incoming VoIP call with the caller id.The Answer, Hold/Resume , Mute/unmute , Hangup can be done to the call with the corresponding menu options. For dialing the VoIP call ,we have to enter the callee SIP URI id in the “Enter Sip address” dialog.
Preconditions that should be followed before using this example -
This example is tested in N95, with the Gizmo VoIP setup. Building it in S60 3.0 FP1 environment will make it work in N95 also.
If this application is used for 3.0 devices then we should built it in S60 3.0 MR SDK and if it is used for FP1 devices then it should be built it in S60 3.0 FP1 SDK.
Please note that making a VoIP call using AIW doesn’t work in N95 8G as it will throw KErrArgument error. So it is advisable to use Phone Client Dial for this case.