Call rejection is not a problem. There are some examples about call handling in this forum. Have a look. The problem is getting phe phone number of the caller. It requires you to be symbian partner in order to use this functionality.
plz tell me the way.actually i was trying but i won't be able to retrieve caller's number as it is giving some problem in etelmm.lib as far as i think.
plz help me out.i already serached the forum for it.
I have had the same problem. I never got the answer. I got mu program compiled but I got error "not supported", or sometning like that one the device, when trying to get the phone number. I read in some forum in symbian.com that you need to be a symbian partner to get this functionality.
i managed to get the callers phone number, my problem is that i want to compare the phone number i got with a blocking list i have... if this phone number is in the blocking list then i should reject the call immediatly to give the caller a busy ring tone instead of a ringing one... My problem is that when i do that, i can hear about a half ring before my application rejects the calls which is unacceptable regarding my application idea...
Can any one help me how to solve this problem (reject the call so fact or disable the ringing until i reject the call)?
Making a living is not the same thing as making a life
Hi Sarah, I should to use an active object too and it will be very similar to yours. Do you solve your problem? If yes, I should be happy if you write the solution, otherwise I'll post you my code (if I'll solve)..
It's not giving me an error... It works, but not in the way I want it to. I need it to reject the call fast enough so that the caller donot hear any ringing before rejecting his call (so as to think that he got a busy signal)... It works... but it takes time to reject a call, the time that is enough for the caller to hear part of the ring before being rejected... I didn't find a solution up till now... Can I disable the ringing -from the callers point of view- until I either reject or allow the call?
Making a living is not the same thing as making a life
I am trying to do same thing, and My code is almost same as yours, except that I am not using Listner, my CBSMCallHandler is a CActive derived class. I do call
In my code I was trying to load TSYModule from CommsDb. I was able to load it succesfully. You were not doing that in you code. I blocked that part of code and my RunL started getting invoked on a incoming call. Its strange that its working this way. Any ways thank for posting that code. Again, now I want to retrive the callers number, I am working on UIQ 2.1 - Symbian OC 7.0s. I dont have functions viz r availiable in 8.0 or 8.1.
I have used CLogClient and CLogViewRecent to get the Callers number, but when i install this on the device(SE P910) the app doesn't even start as it cannot find logcli.dll.
I think its the limitation of the developers platform. We hear a part of the ring.,but it could just be for a few micro seconds. The call blocking is a functionality for the operators. so i think we cant reject a call without the other party getting that small ring. My code is simolar to urs and im getting the same behaviour.
The ringing as heard by the caller is a function of the GSM network, it has nothing to do with the phone your code is running on. More specifically, it has nothing to do with the processor your code is running on. During a call, the network first checks to see if a destination phone is on the network, if it is, the network then checks to make sure the GSM radio in the destination phone can accept the call (ie. it makes sure a line is available). If these two conditions are met, the caller will hear a ring. This is about the same time the first Symbian IncommingCall event handlers are executed and it is too late to do anything about the ringing on the caller's end.
If you could inject some code into the GSM radio itself and try to set up some kind of false busy your concept could work. Goodluck!
Forum posts: 226
Regards,
Forum posts: 147
Forum posts: 53
plz tell me the way.actually i was trying but i won't be able to retrieve caller's number as it is giving some problem in etelmm.lib as far as i think.
plz help me out.i already serached the forum for it.
kindly reply ASAP
Forum posts: 147
Forum posts: 276
-- JumpJack --
Forum posts: 24
i managed to get the callers phone number, my problem is that i want to compare the phone number i got with a blocking list i have... if this phone number is in the blocking list then i should reject the call immediatly to give the caller a busy ring tone instead of a ringing one...
My problem is that when i do that, i can hear about a half ring before my application rejects the calls which is unacceptable regarding my application idea...
Can any one help me how to solve this problem (reject the call so fact or disable the ringing until i reject the call)?
Making a living is not the same thing as making a life
Forum posts: 78
I have worked on N6600, and i didnt face such problem.
And i dont THINK N6630 is the reason.
May be its beacuse User::WaitForRequest(). Try using Active Objects instead
Regards
Faiq
Forum posts: 24
My code is as follows
#include <etelmm.h>
#include <AknNoteWrappers.h>
#include "BSMCallHandler.h"
CBSMCallHandler::CBSMCallHandler(MBSMCallHandler& aListener)
: CActive(EPriorityHigh), iListener(aListener)
{
CActiveScheduler::Add(this);
}
CBSMCallHandler* CBSMCallHandler::NewL(MBSMCallHandler& aListener)
{
CBSMCallHandler* self = new (ELeave) CBSMCallHandler(aListener);
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop(); // self
return self;
}
void CBSMCallHandler::ConstructL()
{
User::LeaveIfError(iTelServer.Connect());
RTelServer::TPhoneInfo phoneInfo;
User::LeaveIfError(iTelServer.GetPhoneInfo(0, phoneInfo));
User::LeaveIfError(iPhone.Open(iTelServer, phoneInfo.iName));
RPhone::TLineInfo lineInfo;
User::LeaveIfError(iPhone.GetLineInfo(0, lineInfo));
User::LeaveIfError(iLine.Open(iPhone, lineInfo.iName));
}
CBSMCallHandler::~CBSMCallHandler()
{
Cancel();
iLine.Close();
iPhone.Close();
iTelServer.Close();
}
void CBSMCallHandler::StartListening()
{
iLine.NotifyIncomingCall(iStatus, iCallName);
SetActive();
}
void CBSMCallHandler::RunL()
{
RCall::TStatus iCallStatus;
User::LeaveIfError(iStatus.Int());
iListener.IncomingCall(iCallName);
iLine.GetStatus(iCallStatus);
switch(iCallStatus)
{
case RCall::EStatusUnknown:
break;
case RCall::EStatusIdle:
break;
case RCall::EStatusDialling:
break;
case RCall::EStatusRinging:
User::LeaveIfError(iCall.OpenExistingCall(iLine, iCallName));
iCall.HangUp();
iCall.Close();
break;
case RCall::EStatusAnswering:
break;
case RCall::EStatusConnecting:
User::LeaveIfError(iCall.OpenExistingCall(iLine, iCallName));
iCall.HangUp();
iCall.Close();
break;
case RCall::EStatusConnected:
User::LeaveIfError(iCall.OpenExistingCall(iLine, iCallName));
iCall.HangUp();
iCall.Close();
break;
case RCall::EStatusHangingUp:
break;
}
StartListening();
}
TInt CBSMCallHandler::RunError(TInt /*aError*/)
{
return KErrNone;
}
void CBSMCallHandler::DoCancel()
{
iLine.NotifyIncomingCallCancel();
}
Thanks in advance
Making a living is not the same thing as making a life
Forum posts: 9
I should to use an active object too and it will be very similar to yours. Do you solve your problem?
If yes, I should be happy if you write the solution, otherwise I'll post you my code (if I'll solve)..
Kind regards,
Lux
Forum posts: 226
What was the error code?
Forum posts: 24
It works... but it takes time to reject a call, the time that is enough for the caller to hear part of the ring before being rejected... I didn't find a solution up till now... Can I disable the ringing -from the callers point of view- until I either reject or allow the call?
Making a living is not the same thing as making a life
Forum posts: 36
I am trying to do same thing, and My code is almost same as yours, except that I am not using Listner, my CBSMCallHandler is a CActive derived class. I do call
iLine.NotifyIncomingCall(iStatus, iCallName);
SetActive();
as you are, but My RunL never gets called.
In the code that you have pasted bellow you have passed the iStatus of CBSMCallHandler, what is Listner doing then?
Please Share some ideas?
Hungarian Notation ain't useful outside Hungary!
Forum posts: 36
In my code I was trying to load TSYModule from CommsDb. I was able to load it succesfully. You were not doing that in you code. I blocked that part of code and my RunL started getting invoked on a incoming call. Its strange that its working this way. Any ways thank for posting that code.
Again, now I want to retrive the callers number, I am working on UIQ 2.1 - Symbian OC 7.0s. I dont have functions viz r availiable in 8.0 or 8.1.
I have used CLogClient and CLogViewRecent to get the Callers number, but when i install this on the device(SE P910) the app doesn't even start as it cannot find logcli.dll.
Where can we get this DLL from.
Do you have a better way?
Thanks in Advance.
Hungarian Notation ain't useful outside Hungary!
Forum posts: 66
I think its the limitation of the developers platform. We hear a part of the ring.,but it could just be for a few micro seconds. The call blocking is a functionality for the operators. so i think we cant reject a call without the other party getting that small ring. My code is simolar to urs and im getting the same behaviour.
Forum posts: 27
The ringing as heard by the caller is a function of the GSM network, it has nothing to do with the phone your code is running on. More specifically, it has nothing to do with the processor your code is running on. During a call, the network first checks to see if a destination phone is on the network, if it is, the network then checks to make sure the GSM radio in the destination phone can accept the call (ie. it makes sure a line is available). If these two conditions are met, the caller will hear a ring. This is about the same time the first Symbian IncommingCall event handlers are executed and it is too late to do anything about the ringing on the caller's end.
If you could inject some code into the GSM radio itself and try to set up some kind of false busy your concept could work. Goodluck!