1

Let me summarize my problem and what I would like to achieve.

I have a SonyEricsson X10i phone with Android 2.3.3. I realized that sometimes my phone not receiving calls even if it indicating full coverage. I checked myself in the MSC/VLR and it indicates that I registered and my phone is currently active (and also there is no IMSI DETACH flag), so it should working correctly (only the last Activate Date is a little bit old ~couple of hours, which can be good as well, without SMS/Call/Location Update), as I mentioned before the phone indicates full coverage and it seems it’s on the network. But when I tried to call it I only reached the Voice Mail. In the MSC/VLR I see No Paging Response Cause for the call, but the phone does nothing. I tried with other SW version (4.0.3 ICS), but the same result. But I not noticed similar behaviour with a different handset (same type). Sorry for the long summary.

So because what I described above, I ‘m trying to write an application/service which will perform GSM/UMTS location update in 15-20 minutes, but I couldn’t find any kind of procedure in android.telephony.gsm.GsmCellLocation, android.telephony.TelephonyManager which will do this for me.
My other concern is the getState()/setStateOutOfService()/ setState() procedures from ServiceState class… It seems they not really working. For example, when I first call the getState() I always get back STATE_OUT_OF_SERVICE, which is not true… When I’m set the state to STATE_POWER_OFF or STATE_IN_SERVICE, at least I get back that state from getState() afterwards, but the phone does nothing for that . (Not even indicate out of coverage,etc…)

Every suggestion/comment are welcome.

MysticMagicϡ
  • 28,593
  • 16
  • 73
  • 124
zmiricz
  • 103
  • 1
  • 5
  • It does sounds like an interesting question but you made a bunch of different remarks and I can't totally understand what you want to know. As far as I understood, you want to ge the location of your phone (latitude,longitude) as set from the cell tower triangulations, is that right? If it is you have to do it via the LOCATION_PROVIDER and ask for the NETWORK_PROVIDER. If that is not what you ask, I suggest you to clarify a bit your question. – Budius Jan 09 '13 at 10:16
  • Hi there, basically, what I want to force my phone to perform a new location update towards to the Radio/Core. It's not related latitude,longitude) it's pure GSM/UMTS Mobility Management Signaling. [link](http://en.wikipedia.org/wiki/Mobility_management). I hope clarified it, if not please let me know. – zmiricz Jan 09 '13 at 11:21
  • I guess it's clearer now, but unfortunately I won't be able to help. Good luck. – Budius Jan 09 '13 at 11:31

1 Answers1

0

I have also seen this problem many times (2 phones from the same manufacturer as yours). From your question, I understand that you want to force the phone to send an MM periodic location update (which it should be sending anyway).

This is too low level, and there's nowhere you can force this directly in the programming interface. The mobility management procedure is part of the phone stack, and is specified in detail in 3GPP TS 24.008, available from www.3gpp.org. Paragraph 4.2.2 defines when the phone is supposed to send these location updates.

The only other thing would be to try by indirect means to force the phone into a condition where it would send a location update. You might be able to do that by trying to select another network manually. If it's successful, and you then manually re-select your home network, then you would trigger a location update. If it's rejected and falls back to its home network, then I think a location update would be triggered as well. But there would also be small costs to this - battery use while it does a networks scan, and time lost while it scans and does manual network selection. (My personal experience is that the lost calls don't happen often enough to justify this.)

user1725145
  • 3,993
  • 2
  • 37
  • 58
  • Hi, thank you very much for your answer, this is what I’m afraid of… I can’t force the phone to perform a location update. At least you now confirmed it. About the workaround, hmm my second thought was to put the phone to offline state and bring back to online, like airplane mode, but I just figured that the phone does nothing towards the core… (No message at all in this case, just most probably not answering for the paging/call/sms). Sadly the problem is a little bit more crucial, because it happens almost all the time, when I’m in the office – zmiricz Jan 10 '13 at 13:15
  • And in case of emergency (something happened with my family, colleagues tries to reach me, etc…) I not even know that I had a call.. I just got a tip from a friend , that maybe I shall try to flash a new baseband firmware to my phone which is compatible with the network. (I’ll give a try). I thinking about another workaround, which might be better than just reselect the network, the application initiate a new call (maybe I’ll call my self:) The first call attempt most probably will be dropped, because of the unreachability issue, but after that the phone will became online again. – zmiricz Jan 10 '13 at 13:16
  • BTW do you know why the serviceState.getState() gives back always STATE_OUT_OF_SERVICE at the first time when I call it? And force the phone to goes offline:) and it’s not an airplane mode? – zmiricz Jan 10 '13 at 13:16
  • The tip to update the firmware is a good one. I assume your SIM is on its home network? That might make a difference. ---- Have you also tried reporting the missed calls issue to the operator? Eventually, you should get back to engineering support, who might be able to fix it. – user1725145 Jan 10 '13 at 13:35
  • I don't know why it returns STATE_OUT_OF_SERVICE at the first call, sorry. Might be worth a separate question. – user1725145 Jan 10 '13 at 13:36
  • Calling yourself sounds like a good workaround. Or maybe go briefly onto the internet (depending on your tarif)? – user1725145 Jan 10 '13 at 13:41
  • Hi, I’m working for my operator;) That’s why I know when I’m performing location update and what is my status in the MSS. I already asked to replace my sim, not helped, and it’s working this same kind of phone (Xperia X10i same software level), so the only thing left the low level firmware… I have a unlimited packet, but it’s packet core not circuit core, so it will only perform location update towards to the SGSN, and it’s working correctly besides that I can’t receive call on Circuit Core side ;) – zmiricz Jan 10 '13 at 13:59
  • Can the operator open a (high prio) issue with Ericsson? This is an annoying problem for users. Good luck with fixing it. – user1725145 Jan 10 '13 at 14:08
  • I'm not sure, maybe we can try to write a request to the factory, but if the same model same sw is working correctly... BTW what about changing the CI? Is it possible to influence this? Somehow add more strength to one neighbour cell? Or it is also just readable? – zmiricz Jan 10 '13 at 15:17
  • Tell them you can reproduce it, and offer to take device logs, if they will tell you how. If it's one of your operator's devices they will definitely have a contact to the bug reporting team. --- There's no way to change the Cell Id via programming interfaces - manually re-selecting the n/w would be the only way to force it to change. – user1725145 Jan 10 '13 at 15:25