There are a lot of tutorials and howtos around how to read the currently used cell id. My question: Is it possible to also get neighbor cell id's and their signal strength?
I dont think you would be able to another phone's cell id just like that, however you could have a stub program sitting on the other phone which can communicate with your phone over bluetooth,irda or one of the MTMs.
I thinh Eibwen (and me too) mean read other cell ID on the same phone ! All GSM phones monitors many cell at any time to be able to switch to another one if needed (better signal, too many people connected, roaming,...) It would be very usefull to get the list of neighbor cell ID for better geo-localisation for exemple !
I am no cellular expert, but a cell network monitor may hold info like signal strength, avail channel, next handover cell etc, but its least likely to have info on the peer terminal equipment (other phones in the same cell). Its the job of the base station to manage the infrastructure.
Perhaps its possible to explore the Presence API (long shot :-p) )
There was an old tool which ran on XP and connected to a mobile phone which could read up to 10 neighbor cell ids I think it was called Nobbi or something similar
I also saw a non-free tool which could do this on the series 60 platform so it should be possible but i have no clue where to start looking...
//Get network information about current connection lPhone.GetCurrentNetworkInfo( lNetworkInfo ); m_objNetworkInfo.iCellId; m_objNetworkInfo.iNetworkInfo.iShortName; m_objNetworkInfo.iNetworkInfo.iLongName;
//Get the signal strength for the current connection lPhone.GetSignalStrength(lStatus, lSignal); //Do something with it...
//Close up lPhone.Close(); lServer.UnloadPhoneModule( KGsmModuleName ); lServer.Close();
You should be able to use RBasicGsmPhone::GetDetectedNetworkInfo() to get other cells I think. If you want signal strength from these you would have to connect to these (RBasicGsmPhone::SetManualNetwork()) shortly and get the signal strength. Perhaps there is an easier way...
You should be able to use RBasicGsmPhone::GetDetectedNetworkInfo() to get other cells I think. If you want signal strength from these you would have to connect to these (RBasicGsmPhone::SetManualNetwork()) shortly and get the signal strength. Perhaps there is an easier way...
Hope it's useful...
RBasicGsmPhone::SetManualNetwork() changed the network which mobile phone registered. Doing this means to change operator, not the cell.
Forum posts: 6
Forum posts: 15
HTH
Jay
Regds
Jay
Forum posts: 6
All GSM phones monitors many cell at any time to be able to switch to another one if needed (better signal, too many people connected, roaming,...)
It would be very usefull to get the list of neighbor cell ID for better geo-localisation for exemple !
Forum posts: 15
I am no cellular expert, but a cell network monitor may hold info like signal strength, avail channel, next handover cell etc, but its least likely to have info on the peer terminal equipment (other phones in the same cell). Its the job of the base station to manage the infrastructure.
Perhaps its possible to explore the Presence API (long shot :-p) )
Cheers
Regds
Jay
Forum posts: 64
There was an old tool which ran on XP and connected to a mobile phone which could read up to 10 neighbor cell ids
I think it was called Nobbi or something similar
I also saw a non-free tool which could do this on the series 60 platform so it should be possible but i have no clue where to start looking...
Forum posts: 9
Here is "conceptually" what I have done (link with gsmbas.lib and etel.lib)
#include <etelbgsm.h>
...
RBasicGsmPhone lPhone;
RTelServer lServer;
MBasicGsmPhoneNetwork::TCurrentNetworkInfo lNetworkInfo;
RTelServer::TPhoneInfo lPhoneInfo;
TRequestStatus lStatus;
TInt32 lSignal;
...
lServer.Connect();
//Load a phone profile
_LIT(KGsmModuleName, "phonetsy.tsy");
lServer.LoadPhoneModule( KGsmModuleName );
//Initialise the phone object
lServer.GetPhoneInfo( 0, lPhoneInfo );
lPhone.Open( lServer, lPhoneInfo.iName );
//Get network information about current connection
lPhone.GetCurrentNetworkInfo( lNetworkInfo );
m_objNetworkInfo.iCellId;
m_objNetworkInfo.iNetworkInfo.iShortName;
m_objNetworkInfo.iNetworkInfo.iLongName;
//Get the signal strength for the current connection
lPhone.GetSignalStrength(lStatus, lSignal);
//Do something with it...
//Close up
lPhone.Close();
lServer.UnloadPhoneModule( KGsmModuleName );
lServer.Close();
You should be able to use RBasicGsmPhone::GetDetectedNetworkInfo() to get other cells I think. If you want signal strength from these you would have to connect to these (RBasicGsmPhone::SetManualNetwork()) shortly and get the signal strength.
Perhaps there is an easier way...
Hope it's useful...
Keep us updated how it goes!
Forum posts: 308
Well i m testing it on UIQ( asi i dont have series 60 device) as of now but i think the code shud work on series 60 also ..
Can someone provide me with etel.h and also other libs and headers for the same ..
Thanks
Amit
Forum posts: 308
Also other methods like ..SignalStrengthNotification() etc does not work too
any work arounds for it ?
Thanks
Amit
Forum posts: 4
You should be able to use RBasicGsmPhone::GetDetectedNetworkInfo() to get other cells I think. If you want signal strength from these you would have to connect to these (RBasicGsmPhone::SetManualNetwork()) shortly and get the signal strength.
Perhaps there is an easier way...
Hope it's useful...
RBasicGsmPhone::SetManualNetwork() changed the network which mobile phone registered. Doing this means to change operator, not the cell.