Thursday, September 25, 2008

Obtaining new TA values by forcing handover

Recently we discussed that if a handover occurred during the call, it would be possible to calculate the distance from each of the base stations using the TA values for the stations before and after the handover. Assuming that the MS has not moved during the handover procedure, these distances can be used to calculate the position of the MS. To make such measurements reliable, it is needed to find a procedure for forcing the MS to perform handover. If such a procedure is found, the MSLC can obtain the signal strength and TA values from the serving BTS.


Now is it possible to force such handovers in GSM? GSM defines a forcedHO command, designed for forcing the handover of all MS's camping on a BTS or TRX for shutdown of that entity. A forced handover command for a single channel is not defined. It is therefore evident that a forced handover will touch not only the MS being located, but also other MSs camping on that entity. Since it is highly undesirable to close down an entire BTS, the emphTRX forcedHO must be issued in the MSL case. Issuing this command will result in a forced handover of the MSs camping on any of the eight channels of this TRX. Since the serving BTS is the strongest, the handover will most probably result in the MSs being handed over to other TRXs in the same BTS. This is undesirable since the reason for the forced handover was to obtain TA values from another BTSs.

The handover to another BTS can be forced by changing the adjacentCellHandover value in the first BTS, so handover within a BTS is no longer possible, before the forced handover is performed. The forced handover will then result in a handover of the MS being located to another BTS. However, the other MSs on the same TRX will also be forced to handover, and these might not be in a location where other BTSs can be reached. For these MSs, the connection will be lost.

So the possibility exists but the cost to locate an MS is very high. Also this is possible only in dedicated mode. For passive mode or historic measurements we will still have to resort to distance estimation using Path Loss Models.

Best Regards,
Faran

[Ref: BSS Management Information. ETS 300 622 (GSM 12.20), ETSI recommendation, 1996.]

Tuesday, September 16, 2008

Forcing cell phones to camp on different sites

I will be exploring possibilities to make a cell phone camp on other BTS other than the primary one. If anyone out there has a hint please do leave a comment here.

I will be posting the solution as soon as I find out.

Best Regards,
Faran

Monday, September 1, 2008

How to load an assembly dynamically and call its methods using reflections

Following my previous post on compiling assemblies dynamically. Here is how we load them and call their methods once compiled successfully.

include these files

using System.Reflection;
using System.Security.Permissions;

Here is the code:

Assembly myAssembly = Assembly.LoadFrom(myAssemblyPath);

BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);

Module [] myModules = myAssembly.GetModules();

foreach (Module Mo in myModules) {

if (Mo.Name.Equals(myAssemblyName)){

Type[] myTypes = Mo.GetTypes();
foreach (Type Ty in myTypes){
if (Ty.Name == TypeName) {
MethodInfo[] myMethodInfo = Ty.GetMethods(flags);
foreach(MethodInfo Mi in myMethodInfo){
if (Mi.Name == MethodName) {
Object obj = Activator.CreateInstance(Ty);
Object response = Mi.Invoke(obj, null);
}
}
}
}
}
}

Best Regards,
Faran

Friday, August 29, 2008

How to get System 32 Directory

I was reviewing an internees code few days back. He had hard coded directory oaths throughout the code. So for all the newbies this is how you get system directory and special folders.

string s = Environment.GetFolderPath(Environment.SpecialFolder.System);

Please do explore Environment.SpecialFolder

Best Regards,
Faran