Hello Andreas,
there is a small issue with GSM1800/1900 in the mobile application: When a location update is performed, the wrong power capability is set in Mobile Station Classmark 1. As a workaround I fixed it this way:
--- ./host/layer23/src/mobile/gsm48_mm.c Mon Jul 25 15:40:50 2011 +++ r:./host/layer23/src/mobile/gsm48_mm.c Thu Aug 04 13:15:09 2011 @@ -2321,7 +2321,11 @@ gsm_print_mcc(subscr->mcc), gsm_print_mnc(subscr->mnc), subscr->lac); /* classmark 1 */ +#if 0 pwr_lev = gsm48_current_pwr_lev(set, rr->cd_now.arfcn); +#else /* cd_now not yet set, take selected cell ARFCN !? */ + pwr_lev = gsm48_current_pwr_lev(set, rr->ms->cellsel.sel_arfcn); +#endif gsm48_encode_classmark1(&nlu->classmark1, sup->rev_lev, sup->es_ind, set->a5_1, pwr_lev); /* MI */
The reason for the the wrong power capability comes from the fact that "rr->cd_now" is not yet set and so the ARFCN is 0 which causes the GSM900 power capability to be used. It is set to "Class 4" in the configuration file per default, however this value is not defined for GSM1800/1900. I am not sure if my workaround is perfect, you are the expert for "mobile" ;-)
Although this might sound like not that important (networks with OpenBSC or OpenBTS don't care at all about the value) there are some real networks out there which don't like it.
On a related note: The default TX power calibration curve for GSM900 causes too less TX power for GSM1800/1900, expecially for low power settings. I will try to improve my current workaround for this and provide a patch.
Best regards, Dieter
Dieter Spaar wrote:
The reason for the the wrong power capability comes from the fact that "rr->cd_now" is not yet set and so the ARFCN is 0 which causes the GSM900 power capability to be used. It is set to "Class 4" in the configuration file per default, however this value is not defined for GSM1800/1900.
thanx dieter!
i just pushed it to the master.
i also fixed the imsi-detach case, when it is initiated in idle mode. in case the connection is establised, i will use the cd_now.arfcn value, because a handover (not implemented yet) may changed the cannel to a different band than the one the phone selected in idle mode.
best regards,
andreas
baseband-devel@lists.osmocom.org